The `StdOutEncoding` added to `.vcxproj` files since commit bc877a7e94
(Add support to indicate UTF-8 custom command pipe output encoding,
2020-04-08) breaks custom commands with symbolic outputs on VS 16.6.0.
Disable it pending further investigation and possibly a fix in VS.
Issue: #20769
The toolsets available on machines hosting shell runners will evolve
over time. Require the runners to have tags indicating that they have
specific toolsets available. When toolsets are eventually removed from
a runner, its tags can then be updated accordingly to prevent pipelines
created for old commits from ever running on them.
Since commit 729d997f10 (Precompile Headers: Add REUSE_FROM signature,
2019-08-30, v3.16.0-rc1~101^2), `GetPchFileObject` handles the case that
it is called first for another target's `REUSE_FROM` by calling
`AddSource` to make sure `GetObjectName` can produce the correct object
name. However, `AddSource` causes `ClearSourcesCache` to be called,
which since commit a9f4f58f0c (cmGeneratorTarget: Clear AllConfigSources
in ClearSourcesCache, 2020-05-15, v3.16.7~2^2) now correctly erases the
`AllConfigSources` structure. This is okay during `AddPchDependencies`,
but there is another code path in which it is problematic.
When the Visual Studio generator's `WriteAllSources` method is looping
over the sources, the `cmake_pch.cxx` source is encountered first. This
causes `OutputSourceSpecificFlags` to call `GetPchCreateCompileOptions`,
which calls `GetPchFile`, which under MSVC with `CMAKE_LINK_PCH` calls
`GetPchFileObject`. That leads to `ClearSourcesCache` erasing the
structure over which `WriteAllSources` is iterating!
This bug is caught by our `RunCMake.PrecompileHeaders` test when run
with the VS generator as of the commit that exposed it by fixing
`ClearSourcesCache`. However, that change was backported to the CMake
3.16 series after testing only with later versions versions that contain
commit a55df20499 (Multi-Ninja: Add precompile headers support,
2020-01-10, v3.17.0-rc1~136^2). By adding proper multi-config support
for PCH, that commit taught `cmLocalGenerator::AddPchDependencies` to
call `GetPchFile` with the real set of configurations instead of just
the empty string. This allows the `GetPchFile` cache of PCH sources to
be populated up front so that the later calls to it in the
`WriteAllSources` loop as described above do not actually call
`GetPchFileObject` or `ClearSourcesCache`. That hid the problem.
Fix this by re-ordering calls to `AddPchDependencies` to handle
`REUSE_FROM` targets only after the targets whose PCH they re-use.
Remove the now-unnecessary call to `AddSource` from `GetPchFileObject`
so that `ClearSourcesCache` is never called during `WriteAllSources`.
Update the PchReuseFrom test case to cover an ordering of targets that
causes generators to encounter a `REUSE_FROM` target before the target
whose PCH it re-uses.
Fixes: #20770
Refactoring in commit 0bf0e35e59 (cmCacheManager::GetProperty: return
cmProp, 2020-03-19) changed the return type of GetCacheEntryValue.
Update the server mode's call site accordingly.
Currently, if the package description ends with a newline
(typically if it is read from a file) cpack -deb adds a single line
with a dot at the end which leads to a violation of the
`extended-description-contains-empty-paragraph` debian policy.
This commit fixes the above behaviour.
Fixes: #20763
Our bundled third-party libraries perform many `try_compile` checks for
compatibility with their upstream build systems. For many of the checks
we already know the result for compilers we support for building CMake
itself, especially on Windows. Hard-code known results to avoid running
the checks.
Code extracted from:
https://gitlab.kitware.com/utils/kwsys.git
at commit a3263389bcaab27fd62a23599d4ce9bdaa01479a (master).
Upstream Shortlog
-----------------
Brad King (7):
ce4941c9 IOStream: Drop this component of KWSys
49d04c2c hashtable: Drop this component of KWSys
a0bd892c SystemInformation: Use 'long long' unconditionally
441dd494 Drop unused checks for 'long long' and '__int64'
2b749749 Drop unused C type macros check
74daf33b Drop unused Borland and OpenWatcom preprocessor conditions
c4e8126a Drop unused CXX cstdio check
bbb62dcc72 CTest: Make sure NOT_RUN tests show up in the failed test log
c503251997 Tests: Add coverage of ctest_test RETURN_VALUE and REPEAT
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4801
0a74d7c2b8 Merge branch 'backport-ctest-repeat-notrun' into ctest-repeat-notrun
bbb62dcc72 CTest: Make sure NOT_RUN tests show up in the failed test log
c503251997 Tests: Add coverage of ctest_test RETURN_VALUE and REPEAT
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4801