1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- cmake_minimum_required(VERSION 2.8)
- 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})
|