Commit Graph

409 Commits

Author SHA1 Message Date
Saleem Abdulrasool
b1207eda7e utils: provide structure to settings
Use a structural definition of the settings and convert them to the
appropriate serialised format as a delayed operation. This makes it
easier to read the settings and modify them as we iterate on the
toolchain.

Take the opportunity to extract the PList conversion into a helper
function.
2025-02-24 15:32:32 -08:00
Saleem Abdulrasool
6c74271269 Merge pull request #79535 from compnerd/platform-staging
utils: remove per-arch `PlatformInstallRoot`
2025-02-24 15:28:49 -08:00
Jeff
11027b8ba2 utils: remove unused variables in build.ps1. (#79531) 2025-02-22 11:32:09 -08:00
Ben Barham
bab8fd84b3 [Build] Make sure to always use local package dependencies on Windows 2025-02-21 10:59:56 -08:00
Saleem Abdulrasool
28256e828f utils: remove per-arch PlatformInstallRoot
This further migrates towards a shared installation of the platform and
SDKs staging. This helps ensure that we are properly creating additional
SDKs without overwriting components and can share components across
builds. It also avoids unnecessary duplicated work.
2025-02-21 08:43:52 -08:00
Jeff
3115f38053 utils: cleanup compares against null in build.ps1 (#79533)
* utils: cleanup compares against null in build.ps1
* Further cleanup.

Co-authored-by: Saleem Abdulrasool <compnerd@compnerd.org>
2025-02-20 23:31:34 -08:00
Saleem Abdulrasool
1af236e7e6 Merge pull request #79505 from compnerd/prefix
utils: pass static library prefix for Swift to Swift
2025-02-20 23:27:11 -08:00
Jeff
b44367e753 util: Add -Variant param to build.ps1 for building Asserts | NoAsserts. (#79313)
* util: Add -Variant param to build.ps1 for building Asserts | NoAsserts.

* Special case BinaryCache path concatenation.

* Fix merge damage.

* Cleanup.
2025-02-20 18:06:31 -08:00
Saleem Abdulrasool
d2d719c3f3 utils: pass static library prefix for Swift to Swift
Update the build invocation for the experimental swift runtime to ensure
that we generate the libraries with the expected names.
2025-02-19 13:10:41 -08:00
Owen Voorhees
f3239c3d92 Merge pull request #79426 from swiftlang/owenv/swift-build-toolchain-info
Flesh out Windows ToolchainInfo.plist
2025-02-17 18:52:03 -08:00
Saleem Abdulrasool
28a77157ab Merge pull request #79363 from compnerd/max-path-ex
utils: use longer paths for build trees
2025-02-17 18:39:27 -08:00
Owen Voorhees
cd3e57aa3e Flesh out Windows ToolchainInfo.plist
- Add FallbackLibraryPaths to usr/bin - swift-build uses this to lookup dlls like libclang
- Fill in the version field used to construct runtime library paths
2025-02-17 13:04:08 -08:00
Saleem Abdulrasool
d0e4f84cb3 Merge pull request #79387 from jeffdav/cleanup-install-python-helpers
utils: Cleanup python installation code in build.ps1.
2025-02-17 13:01:39 -08:00
Saleem Abdulrasool
f2352a512c utils: use longer paths for build trees
The only currently known constraint on the build path is the compilers
build. Use long paths for the builds, co-locating more build products
and allowing better re-use of the build content. This makes it easier to
adjust the various targets that we are building without having to force
clean builds due to changes in the build mapping.
2025-02-15 18:45:41 -08:00
Saleem Abdulrasool
1458acb451 Merge pull request #78505 from compnerd/concurrent
Runtimes: introduce `swift_Concurrency`
2025-02-15 08:31:19 -08:00
Hiroshi Yamauchi
572298b913 Merge pull request #79378 from hjyamauchi/debug-info
Fix the linker flags for the gnu driver when debug info is enabled
2025-02-14 11:59:49 -08:00
Jeff
4d71cdeb0a PR Feedback. 2025-02-14 10:54:16 -08:00
Jeff
0d126f1016 utils: Cleanup python installation code in build.ps1. 2025-02-13 22:14:59 -08:00
Saleem Abdulrasool
f04e96ccda Merge pull request #79328 from jeffdav/relax-stl-mismatch-conditions
util: Relax conditions on defining _ALLOW_COMPILER_AND_STL_VERSION_MI…
2025-02-13 21:59:56 -08:00
Saleem Abdulrasool
1ac0007883 Runtimes: introduce swift_Concurrency
This adds the `swift_Concurrency` module to the new runtimes build. This
is sufficient to build the code but will require further fine tuning to
ensure that all the flags entirely identical and that the ABI surface is
also fully replicated.
2025-02-13 16:24:36 -08:00
Saleem Abdulrasool
bbcc4e8f78 Merge pull request #79327 from compnerd/file-info
utils: use `Sytsem.IO.FileInfo` for file path parameters
2025-02-13 16:19:30 -08:00
Hiroshi Yamauchi
71dfdcffdf Fix the linker flags for the gnu driver when debug info is enabled 2025-02-13 15:53:54 -08:00
Saleem Abdulrasool
cf6a8935c3 utils: adjust some whitespace (NFC) 2025-02-13 09:33:24 -08:00
Saleem Abdulrasool
4af35bb453 utils: rename Get-PinnedToolcahinTool
This function does not get a tool from the toolchain but rather the
toolchain tools directory. Rename the function to be more accurate.
2025-02-13 09:33:24 -08:00
Saleem Abdulrasool
76ae4ed28d utils: add a workaround for the nightly toolchains
The nightly toolchains on Windows improperly versioned the installation
to 6.0.0 (which would collide with an official 6.0.0 release 😱).
In order to use the toolchain as a pinned toolchain we need to account
for the path change. Add a workaround to allow using the extracted
toolchain snapshot.
2025-02-13 09:33:24 -08:00
Jeff
87a1f38c0b Fix comment. 2025-02-13 09:19:12 -08:00
Jeff
2839adc4c4 util: Relax conditions on defining _ALLOW_COMPILER_AND_STL_VERSION_MISMATCH. 2025-02-13 09:19:12 -08:00
Saleem Abdulrasool
0400d0ea15 utils: use Sytsem.IO.FileInfo for file path parameters
This adds additional testing/validation for the parameters when invoking
`build.ps1` and improves the tab completion support as well.
2025-02-12 11:13:42 -08:00
Jeff
57f6af6d45 util: Validate validatable params in build.ps1. (#79276)
* util: Validate validatable params in build.ps1.

* PR Feedback.

* Remove ValidateSet() for string[] values; it breaks when routed through build.cmd.
2025-02-10 22:58:52 -08:00
Saleem Abdulrasool
62f128f6de Merge pull request #79271 from jeffdav/build-ps1-whitespace-excision
util: Excise trailing whitespace in build.ps1.
2025-02-10 14:34:28 -08:00
Jeff
ff702de529 util: Excise trailing whitespace in build.ps1. 2025-02-10 09:54:18 -08:00
Saleem Abdulrasool
f53d006bb9 util: build static foundation for distribution on Windows
This builds the static version of foundation in the experimental SDKs
for Windows. This is required to make further progress towards building
the early swift-driver with static linking to enable the early swift
driver based bootstrapping on Windows.
2025-02-07 13:08:03 -08:00
Hiroshi Yamauchi
0c7c79d80f Merge pull request #79167 from hjyamauchi/wix
Update the Wix version 4.0.6
2025-02-06 13:46:41 -08:00
Saleem Abdulrasool
9c85fbc8da AST,DependencyScan,IRGen,Serialization,Tooling: track library style (#78777)
Track if the dependency is static or dynamic. This is in preparation for
helping rename the static library to differentiate it from import
libraries.
2025-02-06 13:22:56 -08:00
Hiroshi Yamauchi
8698ab2250 Update the Wix version 4.0.6 2025-02-05 11:44:16 -08:00
Stefan Gränitz
86d78c9eb6 Reland "utils: remove option to control the allocator" (#79151)
This reverts commit 310a75b9ea.
2025-02-05 17:35:34 +01:00
Alex Hoppen
a88be2b385 Merge pull request #78910 from ahoppen/adjustments-for-indexstoredb-restructure
[Windows] Adjustments to build.ps1 for restructuring of indexstore-db
2025-02-04 18:36:32 -08:00
Saleem Abdulrasool
4a459bead0 utils: add a build of the experimental runtime
This sets up the Windows build for the new runtime build as a means to
ensure that we do not regress the build. In order to reduce overall
build times and to start experimenting with the static support, it
builds this runtime with static libraries. The intent is to produce a
complete static SDK for distribution.
2025-02-04 10:31:35 -08:00
Stefan Gränitz
cc16488842 [windows][toolchain] Dump test output on failure when testing libdispatch (#79079)
Dumps output for test cases that failed or timed out
2025-02-04 09:27:01 -08:00
Stefan Gränitz
310a75b9ea Revert "utils: remove option to control the allocator" (#79112) 2025-02-04 16:53:12 +01:00
Saleem Abdulrasool
6f92302bf0 Merge pull request #79050 from andrurogerz/swift-inspect-android-on-windows
build swift-inspect for Android as part of toolchain build
2025-02-03 23:12:52 -08:00
Saleem Abdulrasool
f695875aa1 Merge pull request #79058 from compnerd/dynamism
utils: rename `Foundation` to `DynamicFoundation`
2025-01-31 10:09:26 -08:00
Saleem Abdulrasool
7c9f47e22a Merge pull request #78998 from compnerd/your-allocator
utils: remove option to control the allocator
2025-01-31 08:49:55 -08:00
Saleem Abdulrasool
f38541f89b utils: rename Foundation to DynamicFoundation
The smoke test for the new runtime builds also serves as a static
runtime build test. Rename the `Foundation` product to
`DynamicFoundation` to permit the introduction of a `StaticFoundation`
to fit into the static SDK build.
2025-01-30 11:57:49 -08:00
Andrew Rogers
63d29ff878 only build for host and Android targets 2025-01-30 09:14:37 -08:00
Saleem Abdulrasool
0721124bbb Merge pull request #79029 from compnerd/build-cleanups
utils: minor build.ps1 tweaks
2025-01-30 09:02:17 -08:00
Andrew Rogers
fd1d5b0996 build swift-inspect for Android as part of toolchain build 2025-01-30 08:33:33 -08:00
Saleem Abdulrasool
9b23eaa666 utils: remove option to control the allocator
The evolution proposal for enabling the memory allocator for the
toolchain on Windows has been accepted. Always use mimalloc for the
Windows toolchain and reduce the complexity.

Clean up and simplify some of the logic for the MSBuild based build of
mimalloc. Avoid building in the source tree at a cost of complexity.
Reduce the amount of building by selectively building projects instead
of the solution.
2025-01-29 22:27:11 -08:00
Hiroshi Yamauchi
c831aa5153 Merge pull request #78994 from hjyamauchi/mimallocarm64
Adjust to mimalloc v3.0.1 and enable mimalloc arm64
2025-01-29 17:05:28 -08:00
Andrew Rogers
43d8183f5c [build.ps1] remove Android API level from Dispatch.swiftmodule names (#78800)
* [android] remove Android API level from Dispatch.swiftmodule names

* [build.ps1] use swift -print-target-info to determine module triple

* PR feedback

* fix comment

* add swift pinned toolchain to path before invoking swift.exe

* run swift.exe from the built toolchain instead of the pinned toolchain

* include pinned toolchain runtime in path
2025-01-29 15:30:18 -08:00