* [Concurrency] Build C only libdispatch before Swift on non-Darwin platforms
_Concurrency depends on libdispatch and since it is not available by
default on non-Darwin platforms, it needs to be built before the Swift
project, so that the dependency can be resolved.
* Fix clibdispatch installation and BuildSystem tests
* Fix build system tests on Darwin and formatting
This is meant to support parallel CI runs on the same Linux bot, so that
they don't share the module cache and reduce (hopefully) the likelihood
of issues related to invalid signatures.
When the option is enabled, the environment variable `XDG_CACHE_HOME`
is explicitly set in `build-script` and should be inherited by all the
child processes.
Currently we don't check the operating system before setting the
variable (since it should be a noop for other OSes).
Addresses rdar://73887745
This should enable scaling when using machines with large amount of
RAM.
To better support machines with lower spec, process one binary per
dsymutil invocation (reverting #34149).
Add some (limited) facilities to gather the time taken to execute
dsymutil to better assist in tuning the parameter -- these are printed in
JSON format in the log to allow for easier scraping
```
{ "command": "dsymutil", "start": "2020-11-18T18:10:47" }
{ "command": "dsymutil", "end": "2020-11-18T18:14:45" }
```
Addresses rdar://71018443
This adds a check validating the current Xcode version is supported for
building the current sha. This makes us fail fast in the case that
you've selected too new or too old of an Xcode version that might
otherwise fail very late in the build process. You can also set
SKIP_XCODE_VERSION_CHECK to anything to skip this.
The install-swift-driver phase knows how to build swift-driver using
CMake. Allowing only install-swift-driver without plain swift-driver
allows installing it without requiring swiftpm.
Support cross compile Xcode toolchain for Apple Silicon
* Add CMake flag DCMAKE_OSX_ARCHITECTURES to LLVM
* Add CMake flag DCMAKE_OSX_ARCHITECTURES to cmark
* Add CMake flag DCMAKE_OSX_ARCHITECTURES to lldb
* Add CMake flag DCMAKE_OSX_ARCHITECTURES to llbuild
* Add llbuild CMake options array to provide DCMAKE_OSX_ARCHITECTURES
* [Build System] Use one install package for cross compile hosts
* Remove Lipo before non-build-script-impl products
* Add support to only lipo without running installable package tests
* [Build System] Support cross compile install prefix for SwiftPM product in Swift Build Support
* Use cross compile toolchain path for indexstoredb and swift-driver
* Use cross compile toolchain path for swiftpm, swiftsyntax, swiftformat, and skstresstester
* Add cross compile toolchain support to Benchmarks, and fix the python lint issue in skstresstester.py
* [SwiftPM] Add support for cross-compile-hosts flag to build swiftpm using bootstrap script
Along with options to disable the mandatory clean using: `--skip-clean-swift-driver` and `--skip-clean-swiftpm`.
This will ensure that every invocation of build-script will, by default, clean up all build artifacts of these projects and re-build them from scratch.
This is needed for all builds because today arbitrary changes to the compiler can lead to us being unable to incrementally build components that are themselves written in Swift. This causes now-frequent failures in incremental build bots, and is a scenario that is encountered by developers. (For example see: rdar://65006593)
The proper long-term solution is to enable library evolution for these projects. Until this is done, the only safe thing to do is to always rebuild them.
Resolves rdar://65006593
These flags have done nothing for awhile, as 26 of 31 have already been moved to
build-script. Only the flags related to haiku, maccatalyst, and external-benchmarks
are unrecognized by either build script after this removal.
The added lines by Apple Silicon patch really depend on the build
machine platform and it forces that we can build stdlib only for
darwin targets. So I changed to allow non-darwin targets and filter only
unsupported darwin targets. This patch shuold be sent to upstream.
This product supports building and testing swift-format, forwarding the commands to a build script inside of swift-format's repo to handle actually invoking Swift PM. There are new command line options to support the swift-format product:
`--swiftformat`: Enables building swift-format.
`--skip-test-swiftformat': Disables running tests for swift-format after building.
Installing is intentionally not implemented because swift-format isn't ready to be installed as part of the Swift toolchain.
Add build-script command-line options for building, installing, and
testing swift-driver:
* `--swift-driver` will build the Swift driver. If testing is enabled,
it will be tested as well
* `--install-swift-driver` will install the `swift-driver` and
`swift-help` executables in the toolchain.
* `--skip-test-swift-driver` will disable testing of the Swift driver
when other tests are being run.
The Swift driver depends on SwiftPM to build; it is recommended that
you use `--infer` to get the appropriate dependencies built.
Note that this option does not yet replace the existing Swift driver
executables (`swiftc`, `swift`) with the new driver, nor does it
install the SwiftDriver library for use elsewhere.