Files
CMake/Tests/Architecture/CMakeLists.txt
T
Brad King f53bd6f450 Tests: Bump CMake minimum required in tests to 3.5
CMake 3.27 deprecates compatibility with CMake < 3.5.  Update tests that
do not cover older interfaces to avoid the deprecation warning.

Follow the pattern from:

* commit 7b07ccdd2b (Tests/*Only: Update cmake_minimum_required versions,
                     2020-06-15, v3.19.0-rc1~629^2~1)

* commit 72e7c45e98 (Tests: Bump CMake minimum required in tests to 2.8.12,
                     2020-12-22, v3.20.0-rc1~224^2)

* commit f6b4db365a (Tests: bump cmake_minimum_required version to 2.8.12,
                     2021-04-04, v3.21.0-rc1~372^2)

Also remove explicit `cmake_policy` settings made redundant by the
version.
2023-03-01 16:36:54 -05:00

60 lines
1.6 KiB
CMake

cmake_minimum_required(VERSION 3.5)
project(Architecture C)
function(test_for_xcode4 result_var)
set(${result_var} 0 PARENT_SCOPE)
if(APPLE)
execute_process(COMMAND xcodebuild -version
OUTPUT_VARIABLE ov RESULT_VARIABLE rv
)
if("${rv}" STREQUAL "0" AND ov MATCHES "^Xcode ([0-9]+)\\.")
if(NOT CMAKE_MATCH_1 VERSION_LESS 4)
set(${result_var} 1 PARENT_SCOPE)
endif()
endif()
endif()
endfunction()
test_for_xcode4(is_xcode4)
set(arch0 i386)
set(arch1 ppc)
if(is_xcode4)
# Xcode 4, use modern architectures as defaults
# Arch 'ppc' no longer works: tools no longer available starting with Xcode 4
set(arch0 i386)
set(arch1 x86_64)
endif()
add_library(foo foo.c)
if(CMAKE_OSX_ARCHITECTURES)
get_property(archs TARGET foo PROPERTY OSX_ARCHITECTURES)
if(NOT "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "${archs}")
message(FATAL_ERROR
"OSX_ARCHITECTURES property not initialized by CMAKE_OSX_ARCHITECTURES.\n"
"Expected [${CMAKE_OSX_ARCHITECTURES}], got [${archs}]."
)
endif()
list(LENGTH archs archs_len)
if(archs_len GREATER 1)
list(GET archs 0 arch0)
list(GET archs 1 arch1)
endif()
endif()
message("is_xcode4='${is_xcode4}'")
message("archs='${archs}'")
message("arch0='${arch0}'")
message("arch1='${arch1}'")
set_property(TARGET foo PROPERTY OSX_ARCHITECTURES ${arch0})
set_property(TARGET foo PROPERTY OSX_ARCHITECTURES_DEBUG ${arch1})
add_executable(bar bar.c)
target_link_libraries(bar foo)
set_property(TARGET bar PROPERTY OUTPUT_NAME Architecture)
set_property(TARGET bar PROPERTY OSX_ARCHITECTURES ${arch1})
set_property(TARGET bar PROPERTY OSX_ARCHITECTURES_DEBUG ${arch0})