Note that that PR must target `prod/be`, so this will result in temporary divergence between microsoft/STL's GitHub repo and the internal `prod/fe` branch (which we usually keep binary-identical at all times). I believe that this is tolerable because the `stl/msbuild` files change so rarely, and even if we do need to make changes (e.g. adding a new source file), there should be no major conflicts.
Co-authored-by: Nicole Mazzuca <mazzucan@outlook.com>
Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
Co-authored-by: Casey Carter <cartec69@gmail.com>
* Fix#1471 by properly waiting for the Windows Driver Kit installation to finish.
* Update `azure-pipelines.yml` to use the new pool `StlBuild-2020-12-08`.
* Update `README.md` to mention Preview 2. (Its CMake and Ninja versions haven't changed,
and we don't directly mention the Clang version.)
* Update `yvals_core.h` to require Clang 11. (Note that MSVC's `_MSC_VER` is remaining `1928` for the 16.9 release.)
* Remove the workaround for LLVM-37556. (We were treating it as an uncommented perma-workaround, but I remembered.)
* Remove many workarounds in `P1502R1_standard_library_header_units`.
* Remove the VSO-1225825 workaround in `<iterator>` and `<ranges>`.
* Unrelated cleanup in `<valarray>`: `__cpp_aligned_new` implies `if constexpr`.
* Update the vcpkg submodule for Boost 1.74.0. This is just their latest commit.
* In `CMakeLists.txt`, require Boost 1.74.0. (This, combined with the toolset update,
implies that contributors will need to `git submodule update`, clean out the `vcpkg`
submodule with `git clean -x -d -f`, and then bootstrap vcpkg and build boost-math.)
* Simplify conditional operators in `seed_seq::generate`.
+ Thanks to @AlexGuteniev for suggesting extracting `_Off` and noticing
that `_Myvec[(_Kx - 1) % _Sx]` was unnecessarily complicated. Given `_Kx` in `[1, _Sx]`,
then `_Kx - 1` is in `[0, _Sx - 1]`, so `% _Sx` does nothing.
* Take advantage of clang-format 11. This sets `AlignOperands: AlignAfterOperator` and `IndentCaseBlocks: true`.
Co-authored-by: Curtis J Bezault <curtbezault@gmail.com>
Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Casey Carter <cartec69@gmail.com>
Previously we were using ENABLE_TESTS to toggle testing on or off. I suppose this is a little more true to what it does than BUILD_TESTING, but BUILD_TESTING is the "standard" cmake option used for this kind of stuff by many projects.
Additionally we never added ENABLE_TESTS to the cache so it didn't show up in programs like cmake-gui, so I added it to the cache with a default value of "OFF" using the option() cmake command.
Co-authored-by: Charles <barto.charlie+code@gmail.com>
* Update to Clang 10 and Visual Studio 2019 version 16.6p2
* re-clang-formats the tree to comply with new clang 10 clang-format
* updates our agents to F series VMs which are faster and cheaper for our build workloads
* defaults scale set to 0 VMs and lets the Azure Pipelines service control all resizing
* fix tests to pass with the new compilers
Co-authored by Casey Carter and Curtis Bezault
Resolves#97.
We used to detect target platform by inspection of VCPKG_TARGET_TRIPLET, but that is no longer necessary. As a result, this enforcement can be removed.
* Remove the need to specify the target architecture by testing CMAKE_CXX_COMPILER_ARCHITECTURE_ID.
This is somewhat fragile because it's documented as an internal-to-cmake variable, but FindBoost.cmake has used it 'effectively forever' so I'm not too concerned.
* Make ARM and ARM64 work, and use CMAKE_CXX_STANDARD_LIBRARIES for kernel32.lib.
* Affirmatively set _HAS_OLD_IOSTREAMS_MEMBERS=1 to make intellisense in "Open Folder" happy.
* Use add_library(STATIC) and STATIC_LIBRARY_OPTIONS for implib smashing instead of add_custom_command et al.
* Include headers in some of the generated targets so they show up in "open folder" et al.
* Extract the target architecture from VCPKG_TARGET_TRIPLET.
* Add .vs and out/ to .gitignore as VS's open folder creates these.
* Don't link an exe in try_compile.
* Add CMakeSettings.json to make VS happy.