Merge topic 'fix-tests-failing-with-Xcode4'
1a53fb7
Use correct default multiple architecture values in test5f7acc8
Base architecture choice logic on Xcode versionc050c59
Fix BuildDepends test to work with Xcode 4923b030
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…
Reference in New Issue