Skip to content

Commit 187f772

Browse files
committed
[embedded] Start building embedded stdlib on Windows
1 parent 8c5d9e2 commit 187f772

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()
@@ -210,10 +201,6 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB_CROSS_COMPILING)
210201
list(APPEND EMBEDDED_STDLIB_TARGET_TRIPLES
211202
"i686 i686-unknown-none-elf i686-unknown-none-elf"
212203
"x86_64 x86_64-unknown-none-elf x86_64-unknown-none-elf"
213-
# Without specifying the `windows` component LLVM refuses to
214-
# generate valid COFF object files.
215-
"i686 i686-unknown-windows-msvc i686-unknown-windows-msvc"
216-
"x86_64 x86_64-unknown-windows-msvc x86_64-unknown-windows-msvc"
217204
)
218205
endif()
219206

@@ -227,21 +214,40 @@ endif()
227214

228215
if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
229216
if (SWIFT_HOST_VARIANT STREQUAL "linux")
230-
set(EMBEDDED_STDLIB_TARGET_TRIPLES ${EMBEDDED_STDLIB_TARGET_TRIPLES}
217+
list(APPEND EMBEDDED_STDLIB_TARGET_TRIPLES
231218
"${SWIFT_HOST_VARIANT_ARCH} ${SWIFT_HOST_VARIANT_ARCH}-unknown-linux-gnu ${SWIFT_HOST_VARIANT_ARCH}-unknown-linux-gnu"
232219
# In practice this expands to either:
233220
# "x86_64 x86_64-unknown-linux-gnu x86_64-unknown-linux-gnu"
234221
# "aarch64 aarch64-unknown-linux-gnu aarch64-unknown-linux-gnu"
235-
)
222+
)
236223
elseif (SWIFT_HOST_VARIANT STREQUAL "macosx")
237-
set(EMBEDDED_STDLIB_TARGET_TRIPLES ${EMBEDDED_STDLIB_TARGET_TRIPLES}
224+
list(APPEND EMBEDDED_STDLIB_TARGET_TRIPLES
238225
"x86_64 x86_64-apple-macos x86_64-apple-macos14"
239226
"arm64 arm64-apple-macos arm64-apple-macos14"
240227
"arm64e arm64e-apple-macos arm64e-apple-macos14"
241-
)
228+
)
229+
elseif (SWIFT_HOST_VARIANT STREQUAL "windows")
230+
list(APPEND EMBEDDED_STDLIB_TARGET_TRIPLES
231+
# Without specifying the `windows` component LLVM refuses to
232+
# generate valid COFF object files.
233+
"i686 i686-unknown-windows-msvc i686-unknown-windows-msvc"
234+
"x86_64 x86_64-unknown-windows-msvc x86_64-unknown-windows-msvc"
235+
)
242236
endif()
243237
endif()
244238

239+
if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
240+
set(triples)
241+
foreach(entry ${EMBEDDED_STDLIB_TARGET_TRIPLES})
242+
string(REGEX REPLACE "[ \t]+" ";" list "${entry}")
243+
list(GET list 2 triple)
244+
list(APPEND triples ${triple})
245+
endforeach()
246+
247+
message(STATUS "Building Embedded Swift standard libraries for targets: ${triples}")
248+
message(STATUS "")
249+
endif()
250+
245251
if(SWIFT_BUILD_STDLIB)
246252
# These must be kept in dependency order so that any referenced targets
247253
# 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
@@ -189,6 +189,8 @@ if(NOT swift_optimized)
189189
set(SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENCY FALSE)
190190
elseif(BOOTSTRAPPING_MODE STREQUAL "OFF")
191191
set(SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENCY FALSE)
192+
elseif(SWIFT_HOST_VARIANT STREQUAL "windows") # For now, don't build embedded Concurrency on Windows
193+
set(SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENCY FALSE)
192194
endif()
193195
if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB AND SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENCY)
194196
add_custom_target(embedded-concurrency ALL)

0 commit comments

Comments
 (0)