mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-25 15:49:08 -05:00
72e7c45e98
Since 3.19, CMake generates a deprecation warning when using a minimum version less than 2.8.12. This eliminates those warnings generated during tests, which are typically hidden from the user and developer but are being generated nonetheless.
60 lines
1.6 KiB
CMake
60 lines
1.6 KiB
CMake
cmake_minimum_required(VERSION 2.8.12)
|
|
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})
|