Skip to content

Commit 9caf750

Browse files
authored
Merge pull request #74536 from kubamracek/embedded-windows1
[embedded] Start building embedded stdlib on Windows
2 parents fb0a1b9 + 187f772 commit 9caf750

File tree

2 files changed

+26
-18
lines changed

2 files changed

+26
-18
lines changed

stdlib/public/CMakeLists.txt

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -152,17 +152,8 @@ option(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB_CROSS_COMPILING
152152
"Enable build of the embedded Swift standard library and runtime for cross-compiling targets"
153153
FALSE)
154154

155-
# Temporarily, by default only build embedded stdlib when building the compiler, to
156-
# unblock CI jobs that run against old(er) toolchains.
157-
option(SWIFT_ALLOW_BUILD_EMBEDDED_STDLIB_WITH_HOST_COMPILER
158-
"Build embedded Swift standard library and runtime even
159-
if we are not building our own compiler"
160-
FALSE)
161-
162-
if((NOT SWIFT_HOST_VARIANT STREQUAL "macosx") AND (NOT SWIFT_HOST_VARIANT STREQUAL "linux"))
155+
if((NOT SWIFT_HOST_VARIANT STREQUAL "macosx") AND (NOT SWIFT_HOST_VARIANT STREQUAL "linux") AND (NOT SWIFT_HOST_VARIANT STREQUAL "windows"))
163156
set(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB FALSE)
164-
elseif(NOT SWIFT_INCLUDE_TOOLS)
165-
set(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB ${SWIFT_ALLOW_BUILD_EMBEDDED_STDLIB_WITH_HOST_COMPILER})
166157
elseif(BOOTSTRAPPING_MODE STREQUAL "OFF")
167158
set(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB FALSE)
168159
endif()
@@ -214,10 +205,6 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB_CROSS_COMPILING)
214205
list(APPEND EMBEDDED_STDLIB_TARGET_TRIPLES
215206
"i686 i686-unknown-none-elf i686-unknown-none-elf"
216207
"x86_64 x86_64-unknown-none-elf x86_64-unknown-none-elf"
217-
# Without specifying the `windows` component LLVM refuses to
218-
# generate valid COFF object files.
219-
"i686 i686-unknown-windows-msvc i686-unknown-windows-msvc"
220-
"x86_64 x86_64-unknown-windows-msvc x86_64-unknown-windows-msvc"
221208
)
222209
endif()
223210

@@ -231,21 +218,40 @@ endif()
231218

232219
if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
233220
if (SWIFT_HOST_VARIANT STREQUAL "linux")
234-
set(EMBEDDED_STDLIB_TARGET_TRIPLES ${EMBEDDED_STDLIB_TARGET_TRIPLES}
221+
list(APPEND EMBEDDED_STDLIB_TARGET_TRIPLES
235222
"${SWIFT_HOST_VARIANT_ARCH} ${SWIFT_HOST_VARIANT_ARCH}-unknown-linux-gnu ${SWIFT_HOST_VARIANT_ARCH}-unknown-linux-gnu"
236223
# In practice this expands to either:
237224
# "x86_64 x86_64-unknown-linux-gnu x86_64-unknown-linux-gnu"
238225
# "aarch64 aarch64-unknown-linux-gnu aarch64-unknown-linux-gnu"
239-
)
226+
)
240227
elseif (SWIFT_HOST_VARIANT STREQUAL "macosx")
241-
set(EMBEDDED_STDLIB_TARGET_TRIPLES ${EMBEDDED_STDLIB_TARGET_TRIPLES}
228+
list(APPEND EMBEDDED_STDLIB_TARGET_TRIPLES
242229
"x86_64 x86_64-apple-macos x86_64-apple-macos14"
243230
"arm64 arm64-apple-macos arm64-apple-macos14"
244231
"arm64e arm64e-apple-macos arm64e-apple-macos14"
245-
)
232+
)
233+
elseif (SWIFT_HOST_VARIANT STREQUAL "windows")
234+
list(APPEND EMBEDDED_STDLIB_TARGET_TRIPLES
235+
# Without specifying the `windows` component LLVM refuses to
236+
# generate valid COFF object files.
237+
"i686 i686-unknown-windows-msvc i686-unknown-windows-msvc"
238+
"x86_64 x86_64-unknown-windows-msvc x86_64-unknown-windows-msvc"
239+
)
246240
endif()
247241
endif()
248242

243+
if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
244+
set(triples)
245+
foreach(entry ${EMBEDDED_STDLIB_TARGET_TRIPLES})
246+
string(REGEX REPLACE "[ \t]+" ";" list "${entry}")
247+
list(GET list 2 triple)
248+
list(APPEND triples ${triple})
249+
endforeach()
250+
251+
message(STATUS "Building Embedded Swift standard libraries for targets: ${triples}")
252+
message(STATUS "")
253+
endif()
254+
249255
if(SWIFT_BUILD_STDLIB)
250256
# These must be kept in dependency order so that any referenced targets
251257
# exist at the time we look for them in add_swift_*.

stdlib/public/Concurrency/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,8 @@ if(NOT swift_optimized)
184184
set(SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENCY FALSE)
185185
elseif(BOOTSTRAPPING_MODE STREQUAL "OFF")
186186
set(SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENCY FALSE)
187+
elseif(SWIFT_HOST_VARIANT STREQUAL "windows") # For now, don't build embedded Concurrency on Windows
188+
set(SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENCY FALSE)
187189
endif()
188190
if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB AND SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENCY)
189191
add_custom_target(embedded-concurrency)

0 commit comments

Comments
 (0)