Reply file names embed the configuration name verbatim. Reconfiguring
a build tree with a build type that differs from the previous one only
in case (e.g. Debug -> debug) makes CMake write a reply whose name also
differs only in case from the existing file. On a case-insensitive
filesystem the write is skipped because the name already exists, but
RemoveOldReplyFiles compared on-disk names to the just-written names
textually and deleted the surviving file, leaving the reply index
citing a target or directory reply that no longer exists on disk.
Prune reply files by file identity via cmSystemTools::GetFileId instead
of by name, so an on-disk entry that aliases a reply we just wrote is
kept. An entry whose identity cannot be obtained is retained rather
than deleted.
Fixes: #28022
a887fda85e WINDOWS_EXPORT_ALL_SYMBOLS: Improve performance with Clang toolsets
6d6e58a15e WINDOWS_EXPORT_ALL_SYMBOLS: Fix support for Visual Studio with ClangCL
ca1dc92e36 WINDOWS_EXPORT_ALL_SYMBOLS: Fail explicitly if `nm` fails to start
03e56cd338 Tests: Add cases covering `nm` handling for WINDOWS_EXPORT_ALL_SYMBOLS
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12327
79b807d185 nmake: support long comments for custom commands
e2a243ba43 fastbuild: long list of custom target deps really tested
b44db2c372 instrumentation: enable long output tests for all generators
94e37bc281 Tests: fix RunCMake_TEST_FILTER with non-matching TargetGenexEvent
0a4b5c1e36 Tests: deduplicate configure-and-build sequence
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !12354
- Separate definition files from object files while reading the
generated input list.
- Add batch bindexplib interfaces.
- Preserve native Windows COFF parsing for ordinary objects.
- Collect objects requiring nm and pass them to one nm process through a
response file. On non-Windows hosts, pass every object to nm.
- Request --print-file-name so single- and multi-object output use the
same format.
- Recognize text, data, and MSVC vftable symbols; ignore known
non-exported types and warn about unknown types.
- Capture nm stderr separately so diagnostics cannot corrupt stdout
symbol records.
Closes: #27995
Previously, when process creation failed, the initialized exit code
remained zero and `__create_def` silently wrote an empty export file.
Closes: #27993
Report both the workflow step type and preset name when workflow
preset validation or execution fails. This disambiguates workflows
where configure, build, test, and package steps share the same preset
name.
Update the workflow preset RunCMake expectations.
CPS provides "default targets" as a user convenience which can be linked
by specifying only the package name. CMake implements this via a utility
`INTERFACE` target. However, because it is not namespaced, this is not a
valid requirement, which prevents exporting anything linking to this
target to CPS.
Work around this by introducing a new (internal) target property which
replaces a target with its link interface targets at export time.