Skip to content

Commit 642a6ca

Browse files
authored
Merge pull request #81107 from kubamracek/embedded-conc-arch-cmake
[embedded] Make the CMake setup for Embedded Concurrency distinguish ARCH and SUBDIR for builds products
2 parents ccecacc + c5aa98a commit 642a6ca

File tree

4 files changed

+22
-8
lines changed

4 files changed

+22
-8
lines changed

stdlib/cmake/modules/AddSwiftStdlib.cmake

+9-4
Original file line numberDiff line numberDiff line change
@@ -822,6 +822,7 @@ function(add_swift_target_library_single target name)
822822
IS_FRAGILE)
823823
set(SWIFTLIB_SINGLE_single_parameter_options
824824
ARCHITECTURE
825+
ARCHITECTURE_SUBDIR_NAME
825826
DEPLOYMENT_VERSION_IOS
826827
DEPLOYMENT_VERSION_OSX
827828
DEPLOYMENT_VERSION_TVOS
@@ -888,6 +889,9 @@ function(add_swift_target_library_single target name)
888889
precondition(SWIFTLIB_SINGLE_SDK MESSAGE "Should specify an SDK")
889890
precondition(SWIFTLIB_SINGLE_ARCHITECTURE MESSAGE "Should specify an architecture")
890891
precondition(SWIFTLIB_SINGLE_INSTALL_IN_COMPONENT MESSAGE "INSTALL_IN_COMPONENT is required")
892+
if (NOT SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME)
893+
set(SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME "${SWIFTLIB_SINGLE_ARCHITECTURE}")
894+
endif()
891895

892896
if(NOT SWIFTLIB_SINGLE_SHARED AND
893897
NOT SWIFTLIB_SINGLE_STATIC AND
@@ -903,12 +907,12 @@ function(add_swift_target_library_single target name)
903907

904908
# Determine the subdirectory where this library will be installed.
905909
set(SWIFTLIB_SINGLE_SUBDIR
906-
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE}")
910+
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
907911

908912
# macCatalyst ios-like builds are installed in the maccatalyst/x86_64 directory
909913
if(maccatalyst_build_flavor STREQUAL "ios-like")
910914
set(SWIFTLIB_SINGLE_SUBDIR
911-
"${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE}")
915+
"${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
912916
endif()
913917

914918
if ("${SWIFTLIB_SINGLE_BOOTSTRAPPING}" STREQUAL "")
@@ -1033,6 +1037,7 @@ function(add_swift_target_library_single target name)
10331037
${SWIFTLIB_SINGLE_LINK_LIBRARIES}
10341038
SDK ${SWIFTLIB_SINGLE_SDK}
10351039
ARCHITECTURE ${SWIFTLIB_SINGLE_ARCHITECTURE}
1040+
ARCHITECTURE_SUBDIR_NAME ${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}
10361041
MODULE_NAME ${module_name}
10371042
MODULE_DIR ${SWIFTLIB_SINGLE_MODULE_DIR}
10381043
COMPILE_FLAGS ${SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS}
@@ -1058,9 +1063,9 @@ function(add_swift_target_library_single target name)
10581063

10591064
# If there were any swift sources, then a .swiftmodule may have been created.
10601065
# If that is the case, then add a target which is an alias of the module files.
1061-
set(VARIANT_SUFFIX "-${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE}")
1066+
set(VARIANT_SUFFIX "-${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
10621067
if(maccatalyst_build_flavor STREQUAL "ios-like")
1063-
set(VARIANT_SUFFIX "-${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE}")
1068+
set(VARIANT_SUFFIX "-${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
10641069
endif()
10651070

10661071
if(NOT "${SWIFTLIB_SINGLE_MODULE_TARGETS}" STREQUAL "" AND NOT "${swift_module_dependency_target}" STREQUAL "")

stdlib/cmake/modules/SwiftSource.cmake

+6-3
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function(handle_swift_sources
5050
sourcesvar externalvar name)
5151
cmake_parse_arguments(SWIFTSOURCES
5252
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE;NO_SWIFTMODULE"
53-
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING;INSTALL_BINARY_SWIFTMODULE"
53+
"SDK;ARCHITECTURE;ARCHITECTURE_SUBDIR_NAME;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING;INSTALL_BINARY_SWIFTMODULE"
5454
"DEPENDS;COMPILE_FLAGS;MODULE_NAME;MODULE_DIR;ENABLE_LTO"
5555
${ARGN})
5656
translate_flag(${SWIFTSOURCES_IS_MAIN} "IS_MAIN" IS_MAIN_arg)
@@ -83,6 +83,9 @@ function(handle_swift_sources
8383
precondition(SWIFTSOURCES_SDK "Should specify an SDK")
8484
precondition(SWIFTSOURCES_ARCHITECTURE "Should specify an architecture")
8585
precondition(SWIFTSOURCES_INSTALL_IN_COMPONENT "INSTALL_IN_COMPONENT is required")
86+
if (NOT SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME)
87+
set(SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME "${SWIFTSOURCES_ARCHITECTURE}")
88+
endif()
8689

8790
# Clear the result variable.
8891
set("${dependency_target_out_var_name}" "" PARENT_SCOPE)
@@ -108,12 +111,12 @@ function(handle_swift_sources
108111
endif()
109112

110113
if(swift_sources)
111-
set(objsubdir "/${SWIFTSOURCES_SDK}/${SWIFTSOURCES_ARCHITECTURE}")
114+
set(objsubdir "/${SWIFTSOURCES_SDK}/${SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME}")
112115

113116
get_maccatalyst_build_flavor(maccatalyst_build_flavor
114117
"${SWIFTSOURCES_SDK}" "${SWIFTSOURCES_MACCATALYST_BUILD_FLAVOR}")
115118
if(maccatalyst_build_flavor STREQUAL "ios-like")
116-
set(objsubdir "/MACCATALYST/${SWIFTSOURCES_ARCHITECTURE}")
119+
set(objsubdir "/MACCATALYST/${SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME}")
117120
endif()
118121

119122
get_bootstrapping_path(lib_dir

stdlib/public/Concurrency/CMakeLists.txt

+4-1
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,10 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB AND SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENC
293293
endif()
294294

295295
set(SWIFT_SDK_embedded_THREADING_PACKAGE none)
296+
set(SWIFT_SDK_embedded_ARCH_${arch}_MODULE "${mod}")
296297
set(SWIFT_SDK_embedded_ARCH_${mod}_MODULE "${mod}")
297298
set(SWIFT_SDK_embedded_LIB_SUBDIR "embedded")
299+
set(SWIFT_SDK_embedded_ARCH_${arch}_TRIPLE "${triple}")
298300
set(SWIFT_SDK_embedded_ARCH_${mod}_TRIPLE "${triple}")
299301

300302
# lib/swift/embedded/_Concurrency.swiftmodule
@@ -319,7 +321,8 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB AND SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENC
319321
-ffunction-sections -fdata-sections -fno-exceptions -fno-cxx-exceptions -fno-unwind-tables
320322
MODULE_DIR "${CMAKE_BINARY_DIR}/lib/swift/embedded"
321323
SDK "embedded"
322-
ARCHITECTURE "${mod}"
324+
ARCHITECTURE "${arch}"
325+
ARCHITECTURE_SUBDIR_NAME "${mod}"
323326
DEPENDS embedded-stdlib-${mod}
324327
INSTALL_IN_COMPONENT stdlib
325328
)

utils/swift_build_support/swift_build_support/products/wasmstdlib.py

+3
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,9 @@ def _build_stdlib(self, host_target, target_triple, llvm_cmake_dir):
167167
self.cmake_options.define('SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB:BOOL', 'TRUE')
168168
self.cmake_options.define(
169169
'SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB_CROSS_COMPILING', 'TRUE')
170+
self.cmake_options.define(
171+
'SWIFT_SDK_embedded_ARCH_wasm32_PATH:PATH',
172+
self._wasi_sysroot_path("wasm32-wasi"))
170173
self.cmake_options.define(
171174
'SWIFT_SDK_embedded_ARCH_wasm32-unknown-wasip1_PATH:PATH',
172175
self._wasi_sysroot_path("wasm32-wasi"))

0 commit comments

Comments
 (0)