Windows uses CR+LF for line endings while Unix uses LF. The tests are setup to expect Unix-style line endings. Ensure that git does not convert between them which will result in test failures.
Add documentation for building libdispatch on Windows. This is needed for building foundation. Clean up some mistakes while here. Adjust the swift-corelibs-foundation build to start building the swift side of the world as well.
Update the documentation to cover how to start building swift-corelibs-foundation now that the port of it is sufficiently far along that others can start helping soon. Take the opportunity to reduce some of the clutter in the parameters to make it easier to see the parameters at a glance.
Start documenting how to run the test suite on Windows so that others can easily reproduce the test results. Document the external dependencies from the test suite. Since the LLVM test suite depends on the GNUWin32 tools, I believe that this dependency is not too onerous. Over time, it may be possible to implement more of the functionality in lit to reduce the dependency, but, for now, use the tools to speed up the test suite bring up.
Update the LLDB build instructions for windows to be simpler and use MSVC to build. This is just as effective and has the benefit of making it easier to debug lldb.
Update the cmake configuration to actually reflect the current state of the world. This now builds against the MSVC built LLVM/clang and builds with clang-cl. This also enables building the test suite since that is starting to work on Windows. The MSVC commands are still out of date, but this is an overall improvement to the instructions. Since the primary work shifted towards Windows x86_64, we can use the prebuilt binaries for ICU from the ICU project as they provide Windows x86_64 builds.
Update the windows build instructions to account for:
- the new module (WinSDK), the changes in the ICU configuration
- the need for Visual Studio 2017
- the dropped requirement for installing Python, CMake, Ninja as they are part of VS2017
- the fact that the release mode crasher has been fixed
- the fact that swift-corelibs-libdispatch is supported on Windows
- the changes in clang's flags due to updates to clang
We do not currently use compiler-rt's functionality on Windows. Avoid the unnecessary build. This is intended to simplify the build instructions for Windows.
When building on Windows, we need to set the target triple explicitly to
x86_64-unknown-windows-msvc to ensure that the environment is specified
to define the os condition properly.
- The module maps need to be renamed to module.modulemap
- The module maps need to be copied for non cross compiled builds as well
- The cmake variable is DIRS not DIR
If you follow steps 1-6 in the build, you end up with a build directory
called "Ninja-DebugAssert", not Ninja-RelWithDebInfoAssert as provided in
the code snippet.
- made the build type consistent across all subprojects
- point out that the release build may crash
- link the Swift compiler and runtime libraries with incremental linking turned off
- suppress expected warnings
- added missing build parameters to the lldb cmake invocation line
- added simple installation instructions