CMake's bootstrapping script can't infer a number of parallel build jobs from the number of CPU cores on its own, which means that it's not parallelized by default. Let's get the value of CPU cores when `build_jobs` argument is not explicitly set.
`make -j` only has an effect on CMake's post-bootstrap build jobs, while a substantial amount of time was spent building code sequentially in CMake's bootstrap script without that `--parallelize` option, which is called on a line preceding the `make -j` invocation.
Treat the C++ interop modules similar to the Concurrency and
StringProcessing modules, enabled through a top-level global flag. The
flag now enables disabling the C++ interop modules when the standard
library is built.
Based on the original work by Egor Zhdan!
This is to support building the swift-driver with -sanitize=address when the Swift build preset specifies enable-asan. Without this option and with enable-asan in picture the entire Swift build fails due to ASAN initialization failure in swift-driver.
This commit is dependent on https://github.com/apple/swift-driver/pull/1310 being merged first
rdar://104661463
I'd inserted an extra line, which upset the line numbers in the backtracing
tests.
Also tweak the Python build script tests slightly so they work.
rdar://106234311
* Move Runtime into _Runtime
Fix more _Runtime names
* Add availability to all API
* Build _Runtime and Reflection modules
* Use threading's mutex for all platforms
add stdlib include
Missed this when I originally added the
`--lit-jobs` build-script option, propagate the value
provided to `LLVM_LIT_ARGS` in addition to
`SWIFT_LIT_ARGS`.
swift_build_support: unify CMake toolchain code
Currently, a lot of products defined in `utils/swift_build_support` contain duplicated code that checks for Darwin/Linux triples and generates an appropriate CMake toolchain file. Since all of these products inherit from the `Product` class, it makes sense to reduce this code duplication by refactoring it into a single function.
build-script-impl: remove CMark cases as unused
CMark was converted from a `build-script-impl` product to `build-script` product in https://github.com/apple/swift/pull/37102. After that change, some of the remaining mentions of CMark in `build-script-impl` were unused and can be removed.
This reverts commit a36ab6e287.
The change to support cross compilation of `docc` in macOS toolchains
is breaking nightly toolchain builds – this will unblock them.
It looks like the `--test-product` option Swift-DocC's build script passes to
SwiftPM is supported when building for multiple architectures but not when
testing. PR toolchain builds don't run tests which is why this wasn't caught
before merging.
Resolves rdar://102908495
Updates the build script used in SwiftCI for building the `docc`
executable as part of Swift.org toolchains to support cross compilation.
Currently the `docc` executable included in the otherwise universal
macOS toolchain only supports x86_64. This resolves the issue.
Resolves rdar://102870094
Closes https://github.com/apple/swift-docc/issues/433
This allows the various binaries (swift-frontend, SourceKit, etc.) to
share the same code, as well as allowing plugins to link against these
shared libraries.