Commit Graph

8723 Commits

Author SHA1 Message Date
Max Desiatov
655a3b1e61 Merge branch 'main' into maxd/build-script-typing 2025-07-08 11:47:15 +01:00
Saleem Abdulrasool
b37d0f668f Merge pull request #82856 from Steelskin/fabrice/fix-static-foundation-link-static-dispatch
utils: Link static Foundation with static Dispatch
2025-07-08 01:48:57 -07:00
Konrad `ktoso` Malawski
fe86091cc1 Merge pull request #82558 from ktoso/wip-cleanup-group-docs 2025-07-08 01:06:51 -07:00
Max Desiatov
a073e6610e Merge pull request #82839 from MaxDesiatov/maxd/wasmkit-with-host-tools
For small local incremental builds that require WasmKit it's faster to build WasmKit with the host toolchain instead of waiting for a full bootstrap build to complete.
2025-07-08 08:10:40 +01:00
Cassie Jones
f7ccb5298f Merge pull request #82714 from porglezomp-misc/update-checkout-additional-scheme
update-checkout: Support specifying --config multiple times
2025-07-07 17:31:46 -07:00
Fabrice de Gans
59bf7424bc utils: Link static Foundation with static Dispatch
Previously, the static Foundation build was linking against the dynamic
Dispatch build, resulting in a build failure when linking against the
static Foundation. This fixes the issue by linking the static Foundation
build against the static Dispatch build.
2025-07-07 14:38:16 -07:00
Cassie Jones
f3917b340e update-checkout: Support specifying --config multiple times
Passing additional --config flags will load each config file in turn and
uses the last value for any defined config. This allows having local
configs that only define personal schemes and still having access to the
default schemes. This also makes it easier to work with machine
generated configs without having to cause churn in the main config file.
2025-07-07 11:48:54 -07:00
Max Desiatov
4a8871f94b Respect --build-runtime-with-host-compiler in wasmkit.py 2025-07-07 15:21:51 +01:00
Max Desiatov
03dd520646 Add swift_build/swift-build to swift_build_support/toolchain.py
This exposes `swift-build` from toolchains, which allows products to use this tool directly when building
2025-07-07 15:16:52 +01:00
Saleem Abdulrasool
fa3db90ae3 Merge pull request #82191 from compnerd/static-libdispatch
utils: update experimental SDK builds
2025-07-06 10:25:54 -07:00
Dave Lee
3ac427f94e [utils] Update Demangle::Node data formatter (#82739)
Updates the lldb data formatter for `Demangle::Node` to reflect the
current `PayloadKind` enum values (which were changed in
https://github.com/swiftlang/swift/pull/72884).
2025-07-04 21:36:37 -07:00
Saleem Abdulrasool
d9b0b9e0e1 Merge pull request #82734 from compnerd/tree-structuring
utils: adjust tree layout modification logic for static SDKs
2025-07-04 15:46:56 -07:00
Max Desiatov
461f7d026b Fix typo in reset func in productpipeline_list_builder.py (#82777)
`pipelinst_list` -> `pipeline_list`

There are no other uses of `pipelinst_list`, so it's clearly a typo when trying to refer to `pipeline_list`
2025-07-04 23:02:16 +01:00
Max Desiatov
0c4e56174b Merge pull request #82399 from swiftlang/maxd/embedded-wasm-tests
These tests still require a manual `lit.py` invocation for Wasm, which will be added as a separate CMake target in a future PR.
2025-07-04 15:36:15 +01:00
Yuta Saito
05204bdf63 Merge pull request #82285 from kateinoigakukun/yt/build-foundation 2025-07-04 22:02:14 +09:00
Max Desiatov
572c52955b NFC: Fix doc comment typo in productpipeline_list_builder.py (#82771)
`Product a final schedule` -> `Produce a final schedule`
2025-07-04 05:49:38 -07:00
Ben Barham
c78fa45555 [Build] Temporarily add -j 1 to swift-corelibs-foundation Windows build
We haven't been able to reproduce with `-j 1` yet. While it's slower, at
least we might be able to unblock CI while we continue to investigate.
2025-07-03 18:45:16 -07:00
Mishal Shah
65d9f5f71c Merge pull request #82729 from etcwilde/ewilde/build-script-divide-by-zero
Build-Script: Don't divide by zero
2025-07-03 15:46:49 -07:00
Max Desiatov
3aeffef54e Fix import path in productpipeline_list_builder.py 2025-07-03 22:57:38 +01:00
Max Desiatov
be4ff14bca Add type annotations to ProductPipeline in build-script
This prevents possible runtime type errors and helped uncovering https://github.com/swiftlang/swift/pull/82777. It also server as an improvement o documentation, as provides inferred type annotations for users of this class and callers of its methods.
2025-07-03 19:19:08 +01:00
Yuta Saito
838e9543e8 [wasm] Build and install Foundation for Wasm SDK 2025-07-03 03:25:17 +00:00
Yuta Saito
245dd83e47 Revert "Revert "[wasm] Build and install libxml2 for Wasm SDK""
This reverts commit d5abfa431b.
2025-07-03 03:25:17 +00:00
Saleem Abdulrasool
cb757bcae4 utils: adjust tree layout modification logic for static SDKs
This adjusts the layout to now package up the static SDK properly.
2025-07-02 11:48:52 -07:00
Evan Wilde
f64b5a0488 Build-Script: Don't divide by zero
If things crash very early on, build-script tries to divide by zero when
computing the percent time spent in each project because the build time
is zero. While this is a failure state, all it does is add more output
to the crashing stack trace.
2025-07-02 10:59:55 -07:00
Saleem Abdulrasool
06aa42b75c Merge pull request #82346 from compnerd/static-foundation-setup
utils: adjust the StaticFoundation builds on Windows
2025-07-02 08:22:44 -07:00
Cassie Jones
1fd056156c [test] Test update_checkout --dump-hashes output 2025-07-02 04:06:14 -07:00
finagolfin
b2f52524c5 [android] Disable a couple Reflection tests and fix an install path (#82620)
The tests broke on the community Android CI since #82325, and I just
noticed the install issue when cross-compiling Testing with a
freshly-built compiler, which I'd never done before. Also, fix the NDK
path shown in the CMake output.
2025-07-02 09:41:59 +05:30
Charles Zablit
f2d9de91ce Merge pull request #82630 from charles-zablit/charles-zablit/windows/fix-missing-invocation
[windows] add missing set of WINDOWS_SDKS in build-windows-toolchain.bat
2025-07-01 21:38:22 +01:00
Max Desiatov
27e5d5c551 Fix/xfail/disable remaining tests for embedded Wasm 2025-07-01 11:43:43 +01:00
3405691582
1cf426c905 Plumb native-clang-tools-path to build support. (#81587)
The build support Python libraries assume by default that if we do not
supply a Swift toolchain path, we can find clang in the installed
toolchain path: i.e., the clang that we just built. However, possibly
during bootstrap, we may not have a preexisting Swift compiler but still
want to use the clang on the platform that is already installed.

build-script already gives us native-clang-tools-path. Here, we plumb
this through to the relevant Python modules. If the
native-clang-tools-path is not specified, we use the
install_toolchain_path, just like native_toolchain_path, and the
existing behavior is effectively unchanged. If we do specify a
native-clang-tools-path, then we return it to ensure that we properly
refer to the clang that lives there instead of always defaulting to the
just-built clang.
2025-06-30 10:07:59 -07:00
Charles Zablit
d0f05adf54 [windows] add missing set of WINDOWS_SDKS in build-windows-toolchain.bat 2025-06-30 17:18:51 +01:00
Charles Zablit
9c83ae4422 Merge pull request #82188 from swiftlang/charles-zablit/lldb/new-lldb-windows-bot
[windows] make WindowsSDKs configurable through env variables
2025-06-27 11:50:07 +01:00
Evan Wilde
80863f0bf1 remote-run: Find rsync on path
The current remote-run implementation only works if rsync is located at
`/usr/bin/`, which isn't always the case. FreeBSD installs rsync to
`/usr/local/bin` as it is not installed in the base system by default.
Relax the script to accept rsync on any path.
2025-06-25 13:20:30 -07:00
Charles Zablit
344d24db14 [windows] make WindowsSDKs configurable through env variables 2025-06-25 18:25:25 +01:00
Max Desiatov
92dd843a18 Fix building Wasm stdlib with macOS presets (#80850)
Added optional `ignore_extra_cmake_options` to `cmake_product.py`, existing behavior is preserved with the default argument value set to `False`.

Passed `ignore_extra_cmake_options=True` in `wasisysroot.py`. This allows libc++ for WASI to be built correctly with `-fno-exceptions` in presence of `extra-cmake-options` in macOS presets (which are absent in Linux presets).
2025-06-24 11:15:25 -07:00
Saleem Abdulrasool
e55af870ce utils: adopt SwiftCore_DIR in new builds
Rather than pass along build configuration context to the subsequent
builds, wire together the CMake configuration to the builds to allow
building the runtime properly.
2025-06-23 08:39:59 -07:00
Yuta Saito
9488df15e0 Merge pull request #82393 from wti/wasmkit-universal-fix-82390
Update wasmkit toolchain build to emit universal binary on macOS to fix #82390
2025-06-23 13:58:09 +09:00
Max Desiatov
bac080ef70 presets: allow incremental rebuilds of stdlib for WASI (#82364)
This allows quickly rebuilding and testing wasm stdlib end-to-end without rebuilding the whole toolchain.
2025-06-22 04:04:16 -07:00
Max Desiatov
9b9db58b21 Discover embedded tests when testing wasmstdlib.py (#82376)
Embedded tests are only included in test discovery for `wasmstdlib` product, a separate change is needed to mark relevant tests as supported.

Without this change:

```
[2025-06-21T00:53:52.507Z] --- Running tests for wasmstdlib ---
[...]
[2025-06-21T00:59:22.874Z] Total Discovered Tests: 1405
[2025-06-21T00:59:22.874Z]   Excluded         :   2 (0.14%)
[2025-06-21T00:59:22.874Z]   Unsupported      : 725 (51.60%)
[2025-06-21T00:59:22.874Z]   Passed           : 674 (47.97%)
[2025-06-21T00:59:22.874Z]   Expectedly Failed:   4 (0.28%)
[...]
[2025-06-20T17:42:41.045Z] Build Percentage 	 Build Duration (sec) 	 Build Phase
[2025-06-20T17:42:41.045Z] ================ 	 ==================== 	 ===========
[...]
[2025-06-21T02:02:24.048Z] 3.0%              	 324.31                	 Running tests for wasmstdlib
```

With this change:

```
[2025-06-20T16:33:58.389Z] --- Running tests for wasmstdlib ---
[...]
[2025-06-20T16:39:29.285Z] Total Discovered Tests: 1626
[2025-06-20T16:39:29.285Z]   Excluded         :   2 (0.12%)
[2025-06-20T16:39:29.285Z]   Unsupported      : 946 (58.18%)
[2025-06-20T16:39:29.285Z]   Passed           : 674 (41.45%)
[2025-06-20T16:39:29.285Z]   Expectedly Failed:   4 (0.25%)
[...]
[2025-06-20T17:42:41.045Z] Build Percentage 	 Build Duration (sec) 	 Build Phase
[2025-06-20T17:42:41.045Z] ================ 	 ==================== 	 ===========
[...]
[2025-06-20T17:42:41.045Z] 3.0%              	 322.87                	 Running tests for wasmstdlib
```
2025-06-21 13:47:55 -07:00
wti
65302367d0 Update wasmkit toolchain build to emit universal on macOS to fix #82390
[platform_args] has platform variants of SwiftPM wasmkit build command:
- unchanged: non-macOS + set_installation_rpath -> rpath config
- added: macOS -> universal binaries using --arch

side effect ok?: binary path changes are captured by '--show-bin-path'
2025-06-21 11:20:40 -07:00
Ian Anderson
cb954b98f9 [ABIChecker] Use -Isystem and -Fsystem for swift-api-digester
Use the Swift -Fsystem flag for swift-api-digester instead of the clang -iframework flag. Add support for -Isystem for parity.

rdar://152747420
2025-06-18 21:21:45 -07:00
Fabrice de Gans
b334c8eda1 libxml2: Explicitly set the LLDB LibXML2 version (#82210)
With this change, the `LibXml2_DIR` CMake define is no longer overridden
on configure and actually takes effect when building lldb.
2025-06-18 20:21:52 -07:00
Saleem Abdulrasool
7e6b7c8613 build: avoid installing SQLite3 (#82322)
We build SQLite statically. We do not need to stage this into an install
location to use. Directly pass along the paths modified as a build
product.
2025-06-18 18:16:16 -07:00
Saleem Abdulrasool
d20070841b utils: adjust the StaticFoundation builds on Windows
This is in preparation for the addition of libdispatch to the SDK.
2025-06-18 10:38:00 -07:00
Eric Miotto
ddf0e13e1c Merge pull request #82278 from edymtt/edymtt/add-llvmtestingsupport-only-when-available
[build-script] build LLVMTestingSupport only if target is generated
2025-06-17 14:36:41 -07:00
Hamish Knight
c78ed1c848 Merge pull request #82293 from hamishknight/case-closed
[xcodegen] Make sure to `realPath` Clang file paths
2025-06-17 21:30:20 +01:00
Saleem Abdulrasool
2ba4e7fa20 utils: pass along Foundation and XCTest to TSC (#82267)
This is required to build the TSCSupport module for SPM's consumption.
2025-06-17 10:07:56 -07:00
Mohamed Hegazy
9c2c6c9143 [build.ps1] Honor --SkipBuild with --IncludeNoAsserts (#82271)
Missed in my previous change. This makes it so that we donot build the
no asserts toolchain if `--skipBuild` is passed with
`--IncludeNoAsserts`
2025-06-17 10:06:20 -07:00
Max Desiatov
d5abfa431b Revert "[wasm] Build and install libxml2 for Wasm SDK" 2025-06-17 15:10:02 +01:00
Hamish Knight
1c99ddc1e9 [xcodegen] Make sure to realPath Clang file paths
Ensure we get the `realPath` for file paths in the
`compile_commands.json` to canonicalize casing.
2025-06-17 12:58:34 +01:00