clang-tidy exits with an error code of 0 if the code compiles, even if
there are warnings. Make it generate a file with the errors and fail
the test if this file exists.
Also remove the -fix flag - we don't want clang-tidy to fix things in CI
(yet?).
The Linux Debug build is currently one of the slowest two, pull out one
phase of it that is independent and allow it to run in parallel with the
other tests.
- Don't run an expensive functionality test in debug builds.
- Don't run the different cache configurations (they're probably going
away soon because they help only in synthetic benchmarks).
The newer API (Windows 10 and newer) allows the allocator to ask for
strongly aligned memory.
This is enabled only if the `WINVER` macro is set to target Windows 10
or newer. There is now a CMake option to target older versions of
Windows, so we can test both code paths.
The Azure Pipelines config now includes a test of the compatibility
version. This runs only the release build, because it's mainly there as
a sanity check - 99% of the code is the same as the default Windows
config.