mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[embedded] Make the CMake setup for Embedded Concurrency distnguish ARCH and SUBDIR for builds products
This commit is contained in:
@@ -822,6 +822,7 @@ function(add_swift_target_library_single target name)
|
|||||||
IS_FRAGILE)
|
IS_FRAGILE)
|
||||||
set(SWIFTLIB_SINGLE_single_parameter_options
|
set(SWIFTLIB_SINGLE_single_parameter_options
|
||||||
ARCHITECTURE
|
ARCHITECTURE
|
||||||
|
ARCHITECTURE_SUBDIR_NAME
|
||||||
DEPLOYMENT_VERSION_IOS
|
DEPLOYMENT_VERSION_IOS
|
||||||
DEPLOYMENT_VERSION_OSX
|
DEPLOYMENT_VERSION_OSX
|
||||||
DEPLOYMENT_VERSION_TVOS
|
DEPLOYMENT_VERSION_TVOS
|
||||||
@@ -888,6 +889,9 @@ function(add_swift_target_library_single target name)
|
|||||||
precondition(SWIFTLIB_SINGLE_SDK MESSAGE "Should specify an SDK")
|
precondition(SWIFTLIB_SINGLE_SDK MESSAGE "Should specify an SDK")
|
||||||
precondition(SWIFTLIB_SINGLE_ARCHITECTURE MESSAGE "Should specify an architecture")
|
precondition(SWIFTLIB_SINGLE_ARCHITECTURE MESSAGE "Should specify an architecture")
|
||||||
precondition(SWIFTLIB_SINGLE_INSTALL_IN_COMPONENT MESSAGE "INSTALL_IN_COMPONENT is required")
|
precondition(SWIFTLIB_SINGLE_INSTALL_IN_COMPONENT MESSAGE "INSTALL_IN_COMPONENT is required")
|
||||||
|
if (NOT SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME)
|
||||||
|
set(SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME "${SWIFTLIB_SINGLE_ARCHITECTURE}")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT SWIFTLIB_SINGLE_SHARED AND
|
if(NOT SWIFTLIB_SINGLE_SHARED AND
|
||||||
NOT SWIFTLIB_SINGLE_STATIC AND
|
NOT SWIFTLIB_SINGLE_STATIC AND
|
||||||
@@ -903,12 +907,12 @@ function(add_swift_target_library_single target name)
|
|||||||
|
|
||||||
# Determine the subdirectory where this library will be installed.
|
# Determine the subdirectory where this library will be installed.
|
||||||
set(SWIFTLIB_SINGLE_SUBDIR
|
set(SWIFTLIB_SINGLE_SUBDIR
|
||||||
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE}")
|
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
|
||||||
|
|
||||||
# macCatalyst ios-like builds are installed in the maccatalyst/x86_64 directory
|
# macCatalyst ios-like builds are installed in the maccatalyst/x86_64 directory
|
||||||
if(maccatalyst_build_flavor STREQUAL "ios-like")
|
if(maccatalyst_build_flavor STREQUAL "ios-like")
|
||||||
set(SWIFTLIB_SINGLE_SUBDIR
|
set(SWIFTLIB_SINGLE_SUBDIR
|
||||||
"${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE}")
|
"${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if ("${SWIFTLIB_SINGLE_BOOTSTRAPPING}" STREQUAL "")
|
if ("${SWIFTLIB_SINGLE_BOOTSTRAPPING}" STREQUAL "")
|
||||||
@@ -1033,6 +1037,7 @@ function(add_swift_target_library_single target name)
|
|||||||
${SWIFTLIB_SINGLE_LINK_LIBRARIES}
|
${SWIFTLIB_SINGLE_LINK_LIBRARIES}
|
||||||
SDK ${SWIFTLIB_SINGLE_SDK}
|
SDK ${SWIFTLIB_SINGLE_SDK}
|
||||||
ARCHITECTURE ${SWIFTLIB_SINGLE_ARCHITECTURE}
|
ARCHITECTURE ${SWIFTLIB_SINGLE_ARCHITECTURE}
|
||||||
|
ARCHITECTURE_SUBDIR_NAME ${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}
|
||||||
MODULE_NAME ${module_name}
|
MODULE_NAME ${module_name}
|
||||||
MODULE_DIR ${SWIFTLIB_SINGLE_MODULE_DIR}
|
MODULE_DIR ${SWIFTLIB_SINGLE_MODULE_DIR}
|
||||||
COMPILE_FLAGS ${SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS}
|
COMPILE_FLAGS ${SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS}
|
||||||
@@ -1058,9 +1063,9 @@ function(add_swift_target_library_single target name)
|
|||||||
|
|
||||||
# If there were any swift sources, then a .swiftmodule may have been created.
|
# If there were any swift sources, then a .swiftmodule may have been created.
|
||||||
# If that is the case, then add a target which is an alias of the module files.
|
# If that is the case, then add a target which is an alias of the module files.
|
||||||
set(VARIANT_SUFFIX "-${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE}")
|
set(VARIANT_SUFFIX "-${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
|
||||||
if(maccatalyst_build_flavor STREQUAL "ios-like")
|
if(maccatalyst_build_flavor STREQUAL "ios-like")
|
||||||
set(VARIANT_SUFFIX "-${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE}")
|
set(VARIANT_SUFFIX "-${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT "${SWIFTLIB_SINGLE_MODULE_TARGETS}" STREQUAL "" AND NOT "${swift_module_dependency_target}" STREQUAL "")
|
if(NOT "${SWIFTLIB_SINGLE_MODULE_TARGETS}" STREQUAL "" AND NOT "${swift_module_dependency_target}" STREQUAL "")
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ function(handle_swift_sources
|
|||||||
sourcesvar externalvar name)
|
sourcesvar externalvar name)
|
||||||
cmake_parse_arguments(SWIFTSOURCES
|
cmake_parse_arguments(SWIFTSOURCES
|
||||||
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE;NO_SWIFTMODULE"
|
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE;NO_SWIFTMODULE"
|
||||||
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING;INSTALL_BINARY_SWIFTMODULE"
|
"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"
|
||||||
"DEPENDS;COMPILE_FLAGS;MODULE_NAME;MODULE_DIR;ENABLE_LTO"
|
"DEPENDS;COMPILE_FLAGS;MODULE_NAME;MODULE_DIR;ENABLE_LTO"
|
||||||
${ARGN})
|
${ARGN})
|
||||||
translate_flag(${SWIFTSOURCES_IS_MAIN} "IS_MAIN" IS_MAIN_arg)
|
translate_flag(${SWIFTSOURCES_IS_MAIN} "IS_MAIN" IS_MAIN_arg)
|
||||||
@@ -83,6 +83,9 @@ function(handle_swift_sources
|
|||||||
precondition(SWIFTSOURCES_SDK "Should specify an SDK")
|
precondition(SWIFTSOURCES_SDK "Should specify an SDK")
|
||||||
precondition(SWIFTSOURCES_ARCHITECTURE "Should specify an architecture")
|
precondition(SWIFTSOURCES_ARCHITECTURE "Should specify an architecture")
|
||||||
precondition(SWIFTSOURCES_INSTALL_IN_COMPONENT "INSTALL_IN_COMPONENT is required")
|
precondition(SWIFTSOURCES_INSTALL_IN_COMPONENT "INSTALL_IN_COMPONENT is required")
|
||||||
|
if (NOT SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME)
|
||||||
|
set(SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME "${SWIFTSOURCES_ARCHITECTURE}")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Clear the result variable.
|
# Clear the result variable.
|
||||||
set("${dependency_target_out_var_name}" "" PARENT_SCOPE)
|
set("${dependency_target_out_var_name}" "" PARENT_SCOPE)
|
||||||
@@ -108,12 +111,12 @@ function(handle_swift_sources
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(swift_sources)
|
if(swift_sources)
|
||||||
set(objsubdir "/${SWIFTSOURCES_SDK}/${SWIFTSOURCES_ARCHITECTURE}")
|
set(objsubdir "/${SWIFTSOURCES_SDK}/${SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME}")
|
||||||
|
|
||||||
get_maccatalyst_build_flavor(maccatalyst_build_flavor
|
get_maccatalyst_build_flavor(maccatalyst_build_flavor
|
||||||
"${SWIFTSOURCES_SDK}" "${SWIFTSOURCES_MACCATALYST_BUILD_FLAVOR}")
|
"${SWIFTSOURCES_SDK}" "${SWIFTSOURCES_MACCATALYST_BUILD_FLAVOR}")
|
||||||
if(maccatalyst_build_flavor STREQUAL "ios-like")
|
if(maccatalyst_build_flavor STREQUAL "ios-like")
|
||||||
set(objsubdir "/MACCATALYST/${SWIFTSOURCES_ARCHITECTURE}")
|
set(objsubdir "/MACCATALYST/${SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
get_bootstrapping_path(lib_dir
|
get_bootstrapping_path(lib_dir
|
||||||
|
|||||||
@@ -293,8 +293,10 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB AND SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENC
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(SWIFT_SDK_embedded_THREADING_PACKAGE none)
|
set(SWIFT_SDK_embedded_THREADING_PACKAGE none)
|
||||||
|
set(SWIFT_SDK_embedded_ARCH_${arch}_MODULE "${mod}")
|
||||||
set(SWIFT_SDK_embedded_ARCH_${mod}_MODULE "${mod}")
|
set(SWIFT_SDK_embedded_ARCH_${mod}_MODULE "${mod}")
|
||||||
set(SWIFT_SDK_embedded_LIB_SUBDIR "embedded")
|
set(SWIFT_SDK_embedded_LIB_SUBDIR "embedded")
|
||||||
|
set(SWIFT_SDK_embedded_ARCH_${arch}_TRIPLE "${triple}")
|
||||||
set(SWIFT_SDK_embedded_ARCH_${mod}_TRIPLE "${triple}")
|
set(SWIFT_SDK_embedded_ARCH_${mod}_TRIPLE "${triple}")
|
||||||
|
|
||||||
# lib/swift/embedded/_Concurrency.swiftmodule
|
# lib/swift/embedded/_Concurrency.swiftmodule
|
||||||
@@ -319,7 +321,8 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB AND SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENC
|
|||||||
-ffunction-sections -fdata-sections -fno-exceptions -fno-cxx-exceptions -fno-unwind-tables
|
-ffunction-sections -fdata-sections -fno-exceptions -fno-cxx-exceptions -fno-unwind-tables
|
||||||
MODULE_DIR "${CMAKE_BINARY_DIR}/lib/swift/embedded"
|
MODULE_DIR "${CMAKE_BINARY_DIR}/lib/swift/embedded"
|
||||||
SDK "embedded"
|
SDK "embedded"
|
||||||
ARCHITECTURE "${mod}"
|
ARCHITECTURE "${arch}"
|
||||||
|
ARCHITECTURE_SUBDIR_NAME "${mod}"
|
||||||
DEPENDS embedded-stdlib-${mod}
|
DEPENDS embedded-stdlib-${mod}
|
||||||
INSTALL_IN_COMPONENT stdlib
|
INSTALL_IN_COMPONENT stdlib
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -167,6 +167,9 @@ class WasmStdlib(cmake_product.CMakeProduct):
|
|||||||
self.cmake_options.define('SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB:BOOL', 'TRUE')
|
self.cmake_options.define('SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB:BOOL', 'TRUE')
|
||||||
self.cmake_options.define(
|
self.cmake_options.define(
|
||||||
'SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB_CROSS_COMPILING', 'TRUE')
|
'SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB_CROSS_COMPILING', 'TRUE')
|
||||||
|
self.cmake_options.define(
|
||||||
|
'SWIFT_SDK_embedded_ARCH_wasm32_PATH:PATH',
|
||||||
|
self._wasi_sysroot_path("wasm32-wasi"))
|
||||||
self.cmake_options.define(
|
self.cmake_options.define(
|
||||||
'SWIFT_SDK_embedded_ARCH_wasm32-unknown-wasip1_PATH:PATH',
|
'SWIFT_SDK_embedded_ARCH_wasm32-unknown-wasip1_PATH:PATH',
|
||||||
self._wasi_sysroot_path("wasm32-wasi"))
|
self._wasi_sysroot_path("wasm32-wasi"))
|
||||||
|
|||||||
Reference in New Issue
Block a user