Restructure the `visualc` module into `vcruntime` in order to help
expose the various components (SAL, vcruntime, ucrt, corecrt, STL) for C++
modularization. Include the `stdint.h` textually to deal with
redefinition of types in clang resources and MSVC.
Add workaround for newer CMake versions (ensuring that the MSVC mt is used instead of the LLVM one). Additionally, add some libxml2 flags for when building with the new upstream CMake builds as opposed to the original ones referenced here.
When building against released libxml2 versions from upstream, we need to explicitly specify the static flag. This should help make the builds reproducible by others.
Add a note about reducing parallel link operations for memory exhaustion when building. Thanks to @BradLarson for pointing out that this may be something that may not be obvious to all users.
- Sort the arguments to CMake to make them easier to spot
- Sort the clones to be in order of use
- Use shorter build directory names as the paths can be troublesome
- Update instructions all the way through to swift-package-manager as that now works
- Fix instructions for cloning swift-llbuild (the repository contains symlinks)
- Add instructions for new swift-package-manager dependencies
- Homogenise the build rules (they are at this point, largely copy-paste from each one, just listing dependencies)
- Switch `swift-llbuild` to use `clang-cl` instead of `cl` and add a workaround for code splitting
The CI is switching to ICU 67 since there are fixes in the latter version of ICU that are needed. This should be further improved in the future to possibly use the the unicode.org releases.
Explicitly use the path to pyhon2.7 (although the tool can support python 3.x, the path is much much unwieldy as `"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python.exe"`
Clean up some of the windows recommendations. This is motivated by trying to setup a clean environment with @keith.
- migrate from `toolchain` to `llvm-project` for the LLVM project
- extract `swift` and `cmark` from the `llvm-project` directory structure
- use the `EXTERNAL_PROJECT` and `ENABLE_PROJECTS` properly
- convert artifact fetching to use a command line tool to fetch the URLs rather than manually using a browser
This now reflects the standard checkout layout more closely.
Adjust paths to be a little less confusing. Update the ordering of arguments to support older CMake versions. Add some aesthetically pleasing whitespace to make things more uniform.
Update rules for the Windows build after CMake 3.15 upgrade. This simplifies the rules, relies on the export targets and removes the unnecessary variables.
- remove numbers on steps, they get out of sync and auto-numbering headers doesn't work
- correct some header titles
- re-render the tree to be ascii pretty
- split out "one-time setup" from "getting started"
- fix invocation of cmake for toolchain
- fix libdispatch build rules
- convert libdispatch build rules to be copy-paste friendly
- add libdispatch test instructions