Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion stdlib/public/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,10 @@ option(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB_CROSS_COMPILING
set(SWIFT_EMBEDDED_STDLIB_EXTRA_TARGET_TRIPLES "" CACHE STRING
"List of extra target triples to build the embedded Swift standard library for")

set(SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES "" CACHE STRING
"List of SDKs to use for target triples, in the form triple@sdkpath.
Using this variable precludes setting directly the value for SWIFT_SDK_embedded_ARCH_\$\{ARCH\}_PATH")

if((NOT SWIFT_HOST_VARIANT STREQUAL "macosx") AND
(NOT SWIFT_HOST_VARIANT STREQUAL "linux") AND
(NOT SWIFT_HOST_VARIANT STREQUAL "wasi") AND
Expand Down Expand Up @@ -273,7 +277,7 @@ foreach(triple ${SWIFT_EMBEDDED_STDLIB_EXTRA_TARGET_TRIPLES})
list(GET list 0 arch)
list(GET list 1 vendor)
list(GET list 2 os)
string(REGEX REPLACE "[0-9]+(\\.[0-9]+)+" " " mod "${triple}")
string(REGEX REPLACE "[0-9]+(\\.[0-9]+)+" "" mod "${triple}")

list(FILTER EMBEDDED_STDLIB_TARGET_TRIPLES EXCLUDE REGEX " ${mod} ")

Expand All @@ -282,6 +286,25 @@ foreach(triple ${SWIFT_EMBEDDED_STDLIB_EXTRA_TARGET_TRIPLES})
)
endforeach()

if(SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES)
message(WARNING "Configuring SDKs using content of SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES \
Setting directly SWIFT_SDK_embedded_ARCH_\$\{ARCH\}_PATH will not work")
foreach(triple_configuration ${SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES})
if(triple_configuration STREQUAL "")
continue()
endif()

# Line format: <triple>[@<path to SDK>]
string(REPLACE "@" ";" triple_configuration_list "${triple_configuration}")
list(LENGTH triple_configuration_list triple_configuration_list_length)
if(triple_configuration_list_length GREATER_EQUAL 2)
list(GET triple_configuration_list 0 triple)
list(GET triple_configuration_list 1 sdk_path)
set(EMBEDDED_STDLIB_SDK_FOR_${triple} "${sdk_path}")
endif()
endforeach()
endif()

if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
set(triples)
foreach(entry ${EMBEDDED_STDLIB_TARGET_TRIPLES})
Expand Down
3 changes: 3 additions & 0 deletions stdlib/public/ClangOverlays/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,9 @@ if(NOT DEFINED SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT OR NOT SWIFT_BUILD_
set(SWIFT_SDK_embedded_ARCH_${arch}_MODULE "${mod}")
set(SWIFT_SDK_embedded_LIB_SUBDIR "embedded")
set(SWIFT_SDK_embedded_ARCH_${arch}_TRIPLE "${triple}")
if(SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES)
set(SWIFT_SDK_embedded_ARCH_${arch}_PATH "${EMBEDDED_STDLIB_SDK_FOR_${triple}}")
endif()
add_swift_target_library_single(
embedded-builtin_float-${mod}
swift_Builtin_float
Expand Down
4 changes: 4 additions & 0 deletions stdlib/public/Concurrency/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,10 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB AND SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENC
set(SWIFT_SDK_embedded_LIB_SUBDIR "embedded")
set(SWIFT_SDK_embedded_ARCH_${arch}_TRIPLE "${triple}")
set(SWIFT_SDK_embedded_ARCH_${mod}_TRIPLE "${triple}")
if(SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES)
set(SWIFT_SDK_embedded_ARCH_${arch}_PATH "${EMBEDDED_STDLIB_SDK_FOR_${triple}}")
set(SWIFT_SDK_embedded_ARCH_${mod}_PATH "${EMBEDDED_STDLIB_SDK_FOR_${triple}}")
endif()

# lib/swift/embedded/_Concurrency.swiftmodule
# lib/swift/embedded/<triple>/libswift_Concurrency.a
Expand Down
3 changes: 3 additions & 0 deletions stdlib/public/Synchronization/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,9 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
set(SWIFT_SDK_embedded_ARCH_${arch}_MODULE "${mod}")
set(SWIFT_SDK_embedded_LIB_SUBDIR "embedded")
set(SWIFT_SDK_embedded_ARCH_${arch}_TRIPLE "${triple}")
if(SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES)
set(SWIFT_SDK_embedded_ARCH_${arch}_PATH "${EMBEDDED_STDLIB_SDK_FOR_${triple}}")
endif()
add_swift_target_library_single(
embedded-synchronization-${mod}
swiftSynchronization
Expand Down
3 changes: 3 additions & 0 deletions stdlib/public/Volatile/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
set(SWIFT_SDK_embedded_ARCH_${arch}_MODULE "${mod}")
set(SWIFT_SDK_embedded_LIB_SUBDIR "embedded")
set(SWIFT_SDK_embedded_ARCH_${arch}_TRIPLE "${triple}")
if(SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES)
set(SWIFT_SDK_embedded_ARCH_${arch}_PATH "${EMBEDDED_STDLIB_SDK_FOR_${triple}}")
endif()
add_swift_target_library_single(
embedded-volatile-${mod}
swift_Volatile
Expand Down
3 changes: 3 additions & 0 deletions stdlib/public/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,9 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
set(SWIFT_SDK_embedded_ARCH_${arch}_MODULE "${mod}")
set(SWIFT_SDK_embedded_LIB_SUBDIR "embedded")
set(SWIFT_SDK_embedded_ARCH_${arch}_TRIPLE "${triple}")
if(SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES)
set(SWIFT_SDK_embedded_ARCH_${arch}_PATH "${EMBEDDED_STDLIB_SDK_FOR_${triple}}")
endif()
add_swift_target_library_single(
embedded-stdlib-${mod}
swiftCore
Expand Down
3 changes: 3 additions & 0 deletions stdlib/public/stubs/Unicode/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
set(SWIFT_SDK_embedded_ARCH_${mod}_MODULE "${mod}")
set(SWIFT_SDK_embedded_LIB_SUBDIR "embedded")
set(SWIFT_SDK_embedded_ARCH_${mod}_TRIPLE "${triple}")
if(SWIFT_EMBEDDED_STDLIB_SDKS_FOR_TARGET_TRIPLES)
set(SWIFT_SDK_embedded_ARCH_${mod}_PATH "${EMBEDDED_STDLIB_SDK_FOR_${triple}}")
endif()

add_swift_target_library_single(
embedded-unicode-${mod}
Expand Down