9d1b9a4aa1 CheckLinkerFlag: rely now on internal implementation
660e0d80ae internal/CheckCompilerFlag: rely on common configuration
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6860
For CUDAHOSTCXX the behaviour seems to have been like this since the
introduction of it in commit 9cf5b98d ("CUDA: Prefer environment variables
CUDACXX and CUDAHOSTCXX.", 2016-11-08) and is likely unintentional judging by
the wording of the commit.
The documentation mistake seems to be a copy-paste error from when all the
environment variables were documented in commit e6b77c5f ("Help: Document
CMake's environment variables", 2017-09-01).
Describe this explicitly as it is unlike all other similar environment
variables.
For CUDAARCHS we got it wrong from the get-go in commit c4ae9384 ("CUDA:
Initialize CMAKE_CUDA_ARCHITECTURES using $ENV{CUDAARCHS}", 2020-11-24).
Correcting either to follow the more standard precedence behaviour will require
a policy.
Fixes#23081.
These probably should not have been documented as public variables
to begin with. But since they have been documented for a long time,
we can't just remove them from the docs. Move them to the internal
section instead to make it clearer that they are not intended to be used
directly by projects.
Clear $ENV{CMAKE_PREFIX_PATH} in several RunCMake.find_library tests
because on Windows, a CMAKE_PREFIX_PATH with two consecutive
semicolons causes a library to be found when it should not be.
None of the updated tests expect CMAKE_PREFIX_PATH from the environment
to influence the test, so clear the variable entirely to guarantee it
will not affect the test.
Fixes: #23111
Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
For IntelLLVM, linking with the compiler driver is preferred over using
the linker directly. This is especially true when doing offload to a
target accelerator, which can produce object files that the regular
linker will not handle properly.
Windows-IntelLLVM relies on Windows-MSVC.cmake for many definitions.
This commit does not change that, but does override the MSVC defaults
for linking executables, shared libraries, and static libraries so that
CMake will use the compiler driver instead of the linker.
Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
OFFSET argument cannot handle offsets bigger than INT_MAX because of
the atoi function, which is used to convert the argument string to integer.
Same applies for the LIMIT argument.
Use the steam based reading and 64-bit types to convert and store arguments
to avoid invalid values stored in the corresponding variables.
Fixes: #23076
Since commit ee68d3eb8c (jsoncpp: Add script to update from upstream,
2017-08-28, v3.10.0-rc1~199^2~8) we use a script to maintain the jsoncpp
vendor branch. Drop our readme that documented the old approach.
Apply the change from commit db35e3cfd6 (VS: Fix support for '/guard:cf'
linker flag for v142, 2019-01-24, v3.14.0-rc1~74^2~2) to the v143 flag
table.
The entry for `LinkControlFlowGuard` in `v143_Link.json` does not work
when used in a `.vcxproj` file. Drop our link flag table entries for
this toolset so that the flag will be passed via `AdditionalOptions`.
Also add a test case.