Commit 5f7acc8d authored by David Cole's avatar David Cole

Base architecture choice logic on Xcode version

Not on Darwin version.
parent c050c592
......@@ -3,8 +3,24 @@ project(Architecture C)
set(archs i386 ppc)
if(NOT "${DARWIN_MAJOR_VERSION}.${DARWIN_MINOR_VERSION}" VERSION_LESS 10.0)
# Snow Leopard or later, use modern architectures as defaults
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)
if(is_xcode4)
# Xcode 4, use modern architectures as defaults
# Arch 'ppc' no longer works: tools no longer available starting with Xcode 4
set(archs i386 x86_64)
endif()
......@@ -24,11 +40,9 @@ list(LENGTH archs archs_len)
if(archs_len GREATER 1)
list(GET archs 0 arch0)
list(GET archs 1 arch1)
else()
set(arch0 ${archs})
set(arch1 ${archs})
endif()
message("is_xcode4='${is_xcode4}'")
message("archs='${archs}'")
message("arch0='${arch0}'")
message("arch1='${arch1}'")
......
cmake_minimum_required(VERSION 2.6)
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)
# only use multi-arch if the sysroot exists on this machine
if(EXISTS "${CMAKE_OSX_SYSROOT}")
set(CMAKE_OSX_ARCHITECTURES "ppc;i386")
if(NOT "${DARWIN_MAJOR_VERSION}.${DARWIN_MINOR_VERSION}" VERSION_LESS 10.0)
# Snow Leopard or later, use modern architectures as defaults
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()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment