62bb8a77a5 cmMakefile: Teach ConfigureFile to move the temp file instead of copying it
dc38f81237 cmSystemTools: Revise MoveFileIfDifferent to return cmsys::Status
0a0a826b86 cmMakefile: Use find_if instead of manual loop
e0294fa310 cmMakefile: Replace single-char string literal with char for cmStrCat
206961bc60 cmMakefile::FormatListFileStack: Refactor "manual" loop into algorithms
2e16b58b7c cmStringAlgorithms: Move generic strings join function to public API
ce991188f3 cmMakefile::FormatListFileStack: Exit early on empty stack trace
29fb605822 cmMakefile::FormatListFileStack: Refactor 'while' into 'for'
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9635
In the variables substitution mode `cmMakefile::ConfigureFile`
was copy file and then remove temporary rendered file.
With updated signature of `MoveFileIfDifferent` it can be used
instead of `CopyFileIfDifferent`.
Move `cmJoinImpl` from `cmStringAlgorithms.cxx` to the
`cmStringAlgorithms.h` as `cmJoinStrings`. Two existing overloads are
not suitable for reverse iterators due to the hardcoded type of the
first parameter.
The signature is similar to the generic (template) `cmJoin`. With
`enable_if` "magic", `cmJoinString` could be renamed to `cmJoin` in the
future.
Also, replace `getJoinedLength` with `std::accumulate`.
In a complex test environment, there may be a desire to add a test
property label to indicate context. Here is one such example:
set_property(TEST mygoofytest PROPERTY LABELS might-fail-on-config-change)
Upon looking at the failed test summary, one can quickly decide whether
the failure might be expected or not.
198 - mygoofytest (Failed) might-fail-on-config-change
Since generated `ui` headers are added as byproducts of the autogen
target, it causes to compilation of unchanged files.
This commits adds generated `ui` headers to byproducts of the
timestamp target instead of the autogen target's.
Fixes: #25436Fixes: #26135
When 6ee5c431 is merged, `autogen_test_number`
is put into the wrong scope. The problem is that RunCmake.Autogen_Qt5_X
tests are created only Qt6 prefix is provided. This commit moves it to
the upper scope.
Fix Xcode specific bug where `foreach(exe IN ITEMS Moc Uic Rcc)` should
be removed.
Since commit 67de5b7b82 (VS: Suppress MSBuild default settings affected
by UseDebugLibraries, 2024-02-13, v3.30.0-rc1~538^2~1) we generate an
empty `Optimization` element for the host compiler when there are no C
or C++ optimization flags enabled. The CUDA Toolkit Visual Studio
integration fails with an error if an empty string is inherited from the
host compiler's `Optimization` element. If no CUDA optimization flags
are specified, write an explicit empty `Optimization` element for the
CUDA compiler too.
Fixes: #26144
Since commit d3cbee99e3 (macOS: Prefer building with system-provided
curl, 2024-05-09, v3.30.0-rc1~130^2~1) CMake uses the macOS-provided
curl, which uses the LibreSSL backend by default. This exposes us to
curl issue 12525, created and fixed by the following upstream curl
commits:
* commit `bec0c5bbf` (openssl: switch to modern init for
LibreSSL 2.7.0+, 2023-08-07, `curl-8_3_0~201`)
* commit `9f2d2290d` (openssl: re-match LibreSSL deinit with init,
2023-12-15, `curl-8_6_0~219`)
Work around the bug by preferring the secure-transport backend by
default on the problematic versions of curl.