The fix in commit e9755bc7c1 (MinGW: Restore using windres when
toolchain-prefixed name is not available, 2022-08-15, v3.24.1~4^2)
incorrectly listed two entries in `CMAKE_RC_COMPILER_INIT`, which is
only meant to have one value. Revise the logic to support multiple
platform-specific names for the Windows Resource Compiler while still
only using one name as the fallback when it is not found.
Fixes: #24190
Issue: #23841
Since commit 62cd3904bf (variable: Set LINUX variable on Linux target
systems, 2022-08-10, v3.25.0-rc1~320^2), the `Platform/Android` module
inherits the `LINUX` variable setting from `Platform/Linux`. While
Android may use a Linux kernel, `CMAKE_SYSTEM_NAME` is not `Linux`, and
the platform does not follow conventions of most Linux distributions.
Fixes: #24196
In commit db76876db5 (Modules: Use new SOURCES_FROM_* try_compile (1/2),
2022-09-26, v3.25.0-rc1~74^2~1) and commit 41f7b1169a (Modules: Use new
SOURCES_FROM_* try_compile (2/2), 2022-09-26, v3.25.0-rc1~74^2) the
switch to `SOURCE_FROM_*` required a stronger precondition (the second
argument to check_include_files must not have path components) than
before (any variable name could be used).
Fix that by transforming the variable name to a C identifier before
feeding it to try_compile as a filename. The filename is unspecified by
the documentation, and the file itself is only temporary, so that should
work fine.
I have gone through all the occurrences of `SOURCE_FROM_*`, and
identified these two that require changes. The rest should work fine as
the filenames do not depend on input variable names.
Fixes: #24204
Revert commit be848a71b0 (MSVC: Teach find_library to consider the
'libfoo.a' naming convention, 2022-09-19, v3.25.0-rc1~111^2). When
targeting the MSVC ABI, this causes GNU-ABI libraries to be found in
cases they were not previously, and broke existing builds. Revert the
change pending further discussion on how to handle the motivating use
case.
Issue: #23975Fixes: #24168
Documentation was added by commit 905d5667e8 (FindRuby: Add support for
RVM installations, 2020-03-23, v3.18.0-rc1~497^2), but this feature was
never implemented.
Closes: #21528
989d50d7fc FindCUDAToolkit: Support nvhpc splayed layouts without symlinks
207518b6e8 FindCUDAToolkit: Handle CUDAToolkit_TARGET_DIR dir being a symlink
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7945
Extend the change from commit 1d9f2f9714 (FindCUDA: Do not search for
the deprecated nppicom when CUDA >= 11, 2020-06-22, v3.18.0-rc3~14^2)
to also not use the `CUDA_nppicom_LIBRARY` variable.
Issue: #20845
Since commit 37da6af17d (find_dependency: Always search dependencies,
2019-03-29, v3.15.0-rc1~301^2) we search for a package every time it is
encountered in the transitive dependency graph traversal, even if it has
been found before. This was done in case a new visit to a given package
requests different components than a previous visit. However, it also
causes a lot of repeat processing that is unnecessary in the common case
that all calls share the same set of components (often none).
Restore the logic to avoid repeating the search for an already-found
package. Handle differences in components by de-duplicating based on
the complete `find_package` call arguments.
Fixes: #23685
d34986036f ExternalData: Improve robustness on Windows to copy a data object to a file
efa9eec040 file(COPY_FILE): Add option to retry on Windows if input access fails
fa518188d8 cmSystemTools: Remove unused CopySingleFile overload
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7934
When an external data object was recently created on disk, perhaps
fetched by the current process or another process, it may be
inaccessible on Windows for a short time. Tell our `file(COPY_FILE)`
call to retry a few times to copy the object to the final file path.
Hopefully this will resolve our long-standing spurious failures of the
`Module.ExternalData` test on Windows.
Don't initialize the other CMAKE_<LANG>_COMPILER_PREDEFINES_COMMAND
variables.
The only language variant that is used is
CMAKE_CXX_COMPILER_PREDEFINES_COMMAND, and the other language variants
contained invalid, namely C++-specific commands.
Fixes: #23968
Setting the variables CMAKE_AUTOGEN_ORIGIN_DEPENDS,
CMAKE_AUTOMOC_COMPILER_PREDEFINES, and CMAKE_AUTOMOC_MACRO_NAMES on the
cmake command line did not work as expected. CMakeGenericSystem.cmake
initialized these variables even if they were defined by the user.
This led to the confusing situation where the cache variant of a
variable had one value (defined on the command line) and the non-cache
variant of a variable had a different value (defined in
CMakeGenericSystem.cmake).
Fix this by checking whether the variables are defined before setting
their default values.
Fixes: #24069