Skip to content

Commit 2ee0119

Browse files
committed
[CMake] Centralize the logic to get host '-target' tripple
And pass the value to 'swift-syntax', so they gets correct deployment target.
1 parent e168f35 commit 2ee0119

File tree

4 files changed

+16
-32
lines changed

4 files changed

+16
-32
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,6 +1160,7 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin" AND NOT CMAKE_CROSSCOMPILING)
11601160
set(CMAKE_OSX_DEPLOYMENT_TARGET "")
11611161
endif()
11621162

1163+
swift_get_host_triple(SWIFT_HOST_TRIPLE)
11631164
set(SWIFT_HOST_MODULE_TRIPLE "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_MODULE}")
11641165
set(SWIFT_HOST_LIBRARIES_DEST_DIR "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/swift/host")
11651166
if(SWIFT_BUILD_SWIFT_SYNTAX)

cmake/modules/AddPureSwift.cmake

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,7 @@ function(_add_host_swift_compile_options name)
4646
$<$<COMPILE_LANGUAGE:Swift>:-runtime-compatibility-version>
4747
$<$<COMPILE_LANGUAGE:Swift>:none>)
4848

49-
# Set the appropriate target triple.
50-
# FIXME: This should be set by CMake.
51-
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
52-
set(DEPLOYMENT_VERSION "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_DEPLOYMENT_VERSION}")
53-
endif()
54-
55-
if(SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID")
56-
set(DEPLOYMENT_VERSION ${SWIFT_ANDROID_API_LEVEL})
57-
endif()
58-
59-
get_target_triple(target target_variant "${SWIFT_HOST_VARIANT_SDK}" "${SWIFT_HOST_VARIANT_ARCH}"
60-
MACCATALYST_BUILD_FLAVOR ""
61-
DEPLOYMENT_VERSION "${DEPLOYMENT_VERSION}")
62-
49+
swift_get_host_triple(target)
6350
target_compile_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:Swift>:-target;${target}>)
6451
_add_host_variant_swift_sanitizer_flags(${name})
6552
endfunction()

cmake/modules/AddSwift.cmake

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,7 @@ function(_add_host_variant_swift_sanitizer_flags target)
112112
endif()
113113
endfunction()
114114

115-
# Usage:
116-
# _add_host_variant_c_compile_link_flags(name)
117-
function(_add_host_variant_c_compile_link_flags name)
115+
function(swift_get_host_triple out_var)
118116
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
119117
set(DEPLOYMENT_VERSION "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_DEPLOYMENT_VERSION}")
120118
endif()
@@ -123,12 +121,21 @@ function(_add_host_variant_c_compile_link_flags name)
123121
set(DEPLOYMENT_VERSION ${SWIFT_ANDROID_API_LEVEL})
124122
endif()
125123

124+
get_target_triple(target target_variant "${SWIFT_HOST_VARIANT_SDK}" "${SWIFT_HOST_VARIANT_ARCH}"
125+
MACCATALYST_BUILD_FLAVOR ""
126+
DEPLOYMENT_VERSION "${DEPLOYMENT_VERSION}")
127+
128+
set(${out_var} "${target}" PARENT_SCOPE)
129+
endfunction()
130+
131+
# Usage:
132+
# _add_host_variant_c_compile_link_flags(name)
133+
function(_add_host_variant_c_compile_link_flags name)
134+
swift_get_host_triple(target)
135+
126136
# MSVC and gcc don't understand -target.
127137
# clang-cl understands --target.
128138
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
129-
get_target_triple(target target_variant "${SWIFT_HOST_VARIANT_SDK}" "${SWIFT_HOST_VARIANT_ARCH}"
130-
MACCATALYST_BUILD_FLAVOR ""
131-
DEPLOYMENT_VERSION "${DEPLOYMENT_VERSION}")
132139
if("${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC") # clang-cl options
133140
target_compile_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:--target=${target}>)
134141
target_link_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:C,CXX,OBJC,OBJCXX>:--target=${target}>)
@@ -139,9 +146,6 @@ function(_add_host_variant_c_compile_link_flags name)
139146
endif()
140147

141148
if (CMAKE_Swift_COMPILER)
142-
get_target_triple(target target_variant "${SWIFT_HOST_VARIANT_SDK}" "${SWIFT_HOST_VARIANT_ARCH}"
143-
MACCATALYST_BUILD_FLAVOR ""
144-
DEPLOYMENT_VERSION "${DEPLOYMENT_VERSION}")
145149
target_compile_options(${name} PRIVATE $<$<COMPILE_LANGUAGE:Swift>:-target;${target}>)
146150

147151
_add_host_variant_swift_sanitizer_flags(${name})

test/CMakeLists.txt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -211,15 +211,7 @@ normalize_boolean_spelling(SWIFT_ENABLE_BACKTRACING)
211211
is_build_type_optimized("${SWIFT_STDLIB_BUILD_TYPE}" SWIFT_OPTIMIZED)
212212

213213
# Get 'SWIFT_HOST_TRIPLE' and 'SWIFT_HOST_SDKROOT' for lit.site.cfg.in
214-
if(SWIFT_HOST_VARIANT_SDK IN_LIST SWIFT_DARWIN_PLATFORMS)
215-
set(DEPLOYMENT_VERSION "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_DEPLOYMENT_VERSION}")
216-
endif()
217-
if(SWIFT_HOST_VARIANT_SDK STREQUAL "ANDROID")
218-
set(DEPLOYMENT_VERSION ${SWIFT_ANDROID_API_LEVEL})
219-
endif()
220-
get_target_triple(SWIFT_HOST_TRIPLE SWIFT_HOST_TRIPLE_VARIANT "${SWIFT_HOST_VARIANT_SDK}" "${SWIFT_HOST_VARIANT_ARCH}"
221-
MACCATALYST_BUILD_FLAVOR ""
222-
DEPLOYMENT_VERSION "${DEPLOYMENT_VERSION}")
214+
swift_get_host_triple(SWIFT_HOST_TRIPLE)
223215
set(SWIFT_HOST_SDKROOT "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_PATH}")
224216

225217
set(profdata_merge_worker

0 commit comments

Comments
 (0)