Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Tests/Architecture/CMakeLists.txt
3150 views
1
cmake_minimum_required(VERSION 3.10)
2
project(Architecture C)
3
4
if (CMake_TEST_XCODE_VERSION VERSION_GREATER_EQUAL 12)
5
# Since Xcode 12 we have two architectures again: arm64 and x86_64.
6
set(arch0 x86_64)
7
set(arch1 arm64)
8
elseif(CMake_TEST_XCODE_VERSION VERSION_GREATER_EQUAL 10)
9
# Xcode 10 / 11 do not have two supported architectures for the host.
10
message(STATUS "Skip test x86_64 only")
11
return()
12
elseif(CMake_TEST_XCODE_VERSION VERSION_GREATER_EQUAL 4)
13
# Xcode 4 no longer supports ppc, but does support x86_64.
14
set(arch0 i386)
15
set(arch1 x86_64)
16
else()
17
set(arch0 i386)
18
set(arch1 ppc)
19
endif()
20
21
add_library(foo foo.c)
22
if(CMAKE_OSX_ARCHITECTURES)
23
get_property(archs TARGET foo PROPERTY OSX_ARCHITECTURES)
24
if(NOT "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "${archs}")
25
message(FATAL_ERROR
26
"OSX_ARCHITECTURES property not initialized by CMAKE_OSX_ARCHITECTURES.\n"
27
"Expected [${CMAKE_OSX_ARCHITECTURES}], got [${archs}]."
28
)
29
endif()
30
list(LENGTH archs archs_len)
31
if(archs_len GREATER 1)
32
list(GET archs 0 arch0)
33
list(GET archs 1 arch1)
34
endif()
35
endif()
36
37
message("archs='${archs}'")
38
message("arch0='${arch0}'")
39
message("arch1='${arch1}'")
40
41
set_property(TARGET foo PROPERTY OSX_ARCHITECTURES ${arch0})
42
set_property(TARGET foo PROPERTY OSX_ARCHITECTURES_DEBUG ${arch1})
43
44
add_executable(bar bar.c)
45
target_link_libraries(bar foo)
46
47
set_property(TARGET bar PROPERTY OUTPUT_NAME Architecture)
48
set_property(TARGET bar PROPERTY OSX_ARCHITECTURES ${arch1})
49
set_property(TARGET bar PROPERTY OSX_ARCHITECTURES_DEBUG ${arch0})
50
51