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.
Avoid using `filesystem::path` to hold the output path. It performs
encoding conversions that violate our internal UTF-8 encoding.
Fixes: #27471
Issue: #27472
In commit 99d09ec45a (VS: Suppress MSBuild default link flags not
specified by project or user, 2025-06-17, v4.1.0-rc1~6^2) we removed our
default `-subsystem:...` link flag from `SHARED` and `MODULE` libraries
in Visual Studio generators for consistency with command-line generators.
However, unlike other flag suppressions for #27004, this change did not
just suppress MSBuild defaults, but actually changed flags the generator
was previously adding itself.
For the linker subsystem flag, consistency across generators should
perhaps achieved by adding the flag in other generators instead of
removing it from Visual Studio generators. Restore the previous
behavior pending further investigation.
Issue: #27466Fixes: #27464
In commit 99d09ec45a (VS: Suppress MSBuild default link flags not
specified by project or user, 2025-06-17, v4.1.0-rc1~6^2) we removed our
default `-subsystem:...` link flag from `SHARED` and `MODULE` libraries
in Visual Studio generators for consistency with command-line generators.
However, unlike other flag suppressions for #27004, this change did not
just suppress MSBuild defaults, but actually changed flags the generator
was previously adding itself.
For the linker subsystem flag, consistency across generators should
perhaps achieved by adding the flag in other generators instead of
removing it from Visual Studio generators. Restore the previous
behavior pending further investigation.
Issue: #27466Fixes: #27464
Document link flags suppressed by commit 99d09ec45a (VS: Suppress
MSBuild default link flags not specified by project or user, 2025-06-17,
v4.1.0-rc1~6^2). Leave out `-subsystem` because that's being reverted
by another commit.
Issue: #27004
Issue: #27464