Merge topic 'fix-tests-failing-with-Xcode4'
1a53fb7 Use correct default multiple architecture values in test 5f7acc8 Base architecture choice logic on Xcode version c050c59 Fix BuildDepends test to work with Xcode 4 923b030 Fix Architecture test to work with Xcode 4
This commit is contained in:
commit
2305b575f1
@ -1,6 +1,32 @@
|
|||||||
cmake_minimum_required(VERSION 2.8)
|
cmake_minimum_required(VERSION 2.8)
|
||||||
project(Architecture C)
|
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")
|
||||||
|
if(ov MATCHES "^Xcode 4.[0-9].*$")
|
||||||
|
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)
|
add_library(foo foo.c)
|
||||||
if(CMAKE_OSX_ARCHITECTURES)
|
if(CMAKE_OSX_ARCHITECTURES)
|
||||||
get_property(archs TARGET foo PROPERTY OSX_ARCHITECTURES)
|
get_property(archs TARGET foo PROPERTY OSX_ARCHITECTURES)
|
||||||
@ -10,12 +36,24 @@ if(CMAKE_OSX_ARCHITECTURES)
|
|||||||
"Expected [${CMAKE_OSX_ARCHITECTURES}], got [${archs}]."
|
"Expected [${CMAKE_OSX_ARCHITECTURES}], got [${archs}]."
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
list(LENGTH archs archs_len)
|
||||||
|
if(archs_len GREATER 1)
|
||||||
|
list(GET archs 0 arch0)
|
||||||
|
list(GET archs 1 arch1)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
set_property(TARGET foo PROPERTY OSX_ARCHITECTURES i386)
|
|
||||||
set_property(TARGET foo PROPERTY OSX_ARCHITECTURES_DEBUG ppc)
|
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)
|
add_executable(bar bar.c)
|
||||||
target_link_libraries(bar foo)
|
target_link_libraries(bar foo)
|
||||||
|
|
||||||
set_property(TARGET bar PROPERTY OUTPUT_NAME Architecture)
|
set_property(TARGET bar PROPERTY OUTPUT_NAME Architecture)
|
||||||
set_property(TARGET bar PROPERTY OSX_ARCHITECTURES ppc)
|
set_property(TARGET bar PROPERTY OSX_ARCHITECTURES ${arch1})
|
||||||
set_property(TARGET bar PROPERTY OSX_ARCHITECTURES_DEBUG i386)
|
set_property(TARGET bar PROPERTY OSX_ARCHITECTURES_DEBUG ${arch0})
|
||||||
|
@ -1,9 +1,30 @@
|
|||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 2.6)
|
||||||
project(testRebuild)
|
project(testRebuild)
|
||||||
|
|
||||||
|
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")
|
||||||
|
if(ov MATCHES "^Xcode 4.[0-9].*$")
|
||||||
|
set(${result_var} 1 PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
# only use multi-arch if the sysroot exists on this machine
|
# only use multi-arch if the sysroot exists on this machine
|
||||||
if(EXISTS "${CMAKE_OSX_SYSROOT}")
|
if(EXISTS "${CMAKE_OSX_SYSROOT}")
|
||||||
set(CMAKE_OSX_ARCHITECTURES "ppc;i386")
|
set(CMAKE_OSX_ARCHITECTURES "ppc;i386")
|
||||||
|
test_for_xcode4(is_xcode4)
|
||||||
|
if(is_xcode4)
|
||||||
|
# Xcode 4, use modern architectures as defaults
|
||||||
|
# Arch 'ppc' no longer works: tools no longer available starting with Xcode 4
|
||||||
|
set(CMAKE_OSX_ARCHITECTURES i386 x86_64)
|
||||||
|
endif()
|
||||||
endif(EXISTS "${CMAKE_OSX_SYSROOT}")
|
endif(EXISTS "${CMAKE_OSX_SYSROOT}")
|
||||||
endif(APPLE)
|
endif(APPLE)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user