Extend commit ff8c0e9c10 (ci: Clamp CUDA 'native' architecture to values
supported by its toolkit, 2022-03-14, v3.24.0-rc1~468^2) to avoid
failures due to `nvcc -arch=native`.
Modify the implementation of policy CMP0199 to only remove the oddball
configuration map matching of `$<CONFIG>` in `NEW` mode, restoring the
old behavior of matching BOTH the consumer's configuration and the
selected configuration of the imported target. It turns out that users
are more dependent on the former than the latter, and while matching
more than one thing is still dodgy, we will likely need to introduce a
new generator expression to match the selected configuration of the
imported target.
Meanwhile, `$<CONFIG>` on targets imported from CPS still only matches
the selected configuration of the imported target, which is the behavior
specified by CPS. However, this can only happen for `$<CONFIG>`
expressions that were generated internally during import.
Update documentation and test cases accordingly.
Fixes: #27487Fixes: #27495
CMake 4.1 and earlier did not issue an error if an imported shared library target
was missing an IMPORTED_IMPLIB property and nothing used that imported
library. There was no code path checking for the CMP0111 NEW behavior. Since
b626843d71 (fileAPI: Output all INTERFACE and IMPORTED targets, 2025-09-13),
we now include all imported targets in the file API replies, and that does trigger
that check. We need to tolerate such imported targets to preserve backward
compatibility, and to avoid issuing errors for problems in targets likely to be
coming from outside the project and beyond the developer's control.
Fixes: #27496
Restore conditions broken by commit 19a61e56cf (VS: Refactor MSVC
character set selection, 2025-10-10, v4.2.0-rc1~12^2~1). We had misread
the purpose/scope of the `<= cmStateEnums::OBJECT_LIBRARY` condition.
In the original code it was only about safely indexing `ClOptions`,
not about the kinds of targets that can use a unicode character set.
Fixes: #27490
When there is no timeout, a stop time reason was made for any timeout,
including a case where a `TIMEOUT_AFTER_MATCH` would reset the timeout.
Add a test case.
When a timeout is updated during runtime (e.g., via
`TIMEOUT_AFTER_MATCH`), the actual timeout needs recomputed based on
consideration of `StopTimeout` as well. Instead of using `Timeout`
directly, add a `GetComputedTimeout` method which also retrieves the
timeout reason based on which timeout is selected.
The help text for most variables were just copy-and-pasted from the
minimal output from running `appimagetool --help`. That text lacked
considerable important detail.
The default values for most of the variables were also specified
incorrectly. They listed themselves as the default, which is wrong.
In most cases, the variables are unset by default. For those that
actually have fallback values, update them to specify that.
The CPACK_APPIMAGE_DESKTOP_FILE variable is not mandatory.
The code does provide fallback behavior when it isn't set. What is
mandatory though is that there is a .desktop file, either specified
explicitly, or found within the installed files. There is also a close
relationship with CPACK_PACKAGE_ICON that deserves explicitly
drawing attention to.
Our CI setup has per-project runner setups, so they are now providing
the port configuration. The main goal is to have Rosetta caches separate
from the native caches on macOS, but removing this removes a bit of
coupling to Kitware's CI setup.