Rename LLDB_ALLOW_STATIC_BINDINGS to LLDB_USE_STATIC_BINDINGS and make
LLDB use the static bindings unconditionally when it's set. The current
variable is opaque because it allows LLDB to use the static bindings,
but only if SWIG is not found. If an incompatible version of swig is
found, it reports a fatal error. This serves no purpose other than to
confuse the user.
The corresponding LLDB patch simplifies things and makes the variable do
what you expect. When enabled, LLDB uses the static bindings. When
disabled, we try to generate them with SWIG.
This patch modifies the build scripts to pass the new variable.
Update build rules to use ICU 64.2. The CI is migrating to ICU 64.2 which is locally built to avoid spurious failures in the build due to download failures.
Clean up the Windows build steps to use `md` and `cd`, remove the unnecessary `pushd`, `popd`, directly invoke `ninja` rather than invoking it through `cmake`.
Remove prelude as the documentation now covers the use of `cl` to build as it is stable and does a better job overall compared to `clang-cl` (better generated binaries, faster builds, better (working) debug information).
Add instructions to enable tests on Windows. This requires additional patches to libdispatch and Foundation to enable the build as well as run. But, this is in preparation for those changes to get merged and for others to replicate the test suite.
Corrections and improvements to the documentation to build on Windows. This includes:
- switching to `cl` for the swift build
- setting up the paths correctly
- correcting the instructions for XCTest builds
- setup to ensure that XCTest can be tested in the future
- fixes to actually get the swift tests to run on Windows
- removal of unnecessary arguments to libdispatch build
Add instructions for building libxml2. The libxml2 available for Windows is built against MinGW and requires iconv support. Simply build our own version of libxml2 to avoid the dependency.
Now that the flags have been fixed for the runtime build, we no longer need to ignore the overly verbose warnings. We now emit warnings which we should really cleanup.
Deal with different python versions being installed. GYB is python2 only and breaks with python 3.x. Ensure that we pick up python 2.7 when building (this is the version vended by Visual Studio and is the stable 2.x series release).
Update instructions to add ICU to path to avoid the multiprocessing failure. Additionally, remove the `file` tool as that is no longer needed for the test suite.
Add a workaround to try to reduce the path lengths a bit since it is unlikely that LLVM will accept changes to improve `lit` to support long paths on Windows. There is strong opposition to improvements there from @rui314 and @nico at https://reviews.llvm.org/D57533 .
Default to RelWithDebInfo builds on Windows because the build times with everything debug is ludicrous. This gives a relatively useful build for development, even though the targets built with `clang-cl` have a slightly poorer debugging experience. This reduces the build time by an order of magnitude though. In theory, it is possible to build a second build of LLVM and Clang to get a debug build of the swift compiler building with a release build of clang.
- Fix minor typos
- Add missing `git clone` for LLDB
- Fix inconsistent/missing quotes in code blocks
- A few other consistency fixups
- `SWIFT_PATH_TO_LIBDISPATCH_SOURCE` is only used on Linux
- Use `-A` and `-T` with modern CMake instead of `-DCMAKE_GENERATOR_PLATFORM`
- Add missing info on `libcurl` and `libxml2` requirements for `swift-corelibs-foundation`
Update the generator replacement instructions. This ensures that the instructions are correct given all the updates for the windows build instructions.