This fix was first made by commit 86e6349ef7 (find_program: Find
programs that are executable but not readable, 2020-04-04,
v3.18.0-rc1~372^2) but was reverted for compatibility. Re-introduce it
with a policy for compatibility.
Fixes: #10468
CPack learned the `CPACK_PRE_BUILD_SCRIPTS`, `CPACK_POST_BUILD_SCRIPTS`,
and `CPACK_PACKAGE_FILES` variables.
The first two are lists of scripts to perform
- after pre-install files into a staging directory and before
producing the resulting packages
- after produsing the packages
The post-build script(s) also get the list of actually produced
packages in the `CPACK_PACKAGE_FILES`.
Issue: #19077
6d168c41e3 gitlab-ci: split linux and macos shared before scripts
a1fe6ad621 gitlab-ci: use `extends`
fda8b79f88 gitlab-ci: add a comment describing what goes into a job
2b4523c5f2 gitlab-ci: make rules a bit more uniform
d6fe877cf9 gitlab-ci: split into multiple files
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4885
6d168c41e3 gitlab-ci: split linux and macos shared before scripts
a1fe6ad621 gitlab-ci: use `extends`
fda8b79f88 gitlab-ci: add a comment describing what goes into a job
2b4523c5f2 gitlab-ci: make rules a bit more uniform
d6fe877cf9 gitlab-ci: split into multiple files
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4885
b9dd072e05 Tests: Add case for cmake --build with a failing target
87c860ebad cmake --build: Fix exit code when building multiple targets
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4878
The ability to disable adding architectures completely for packaging purposes
and cases requiring passing the architectures flags explicitly has been
requested.
Support a false value for CUDA_ARCHITECTURES and CMAKE_CUDA_ARCHITECTURES
for this purpose.
Implements #20821.
b365385d66 Clang: Record Clang 6.0+ as fully supporting C++17
5d26efe38f Clang: Add final C++20 flag for Clang 11.0+
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4887
b365385d66 Clang: Record Clang 6.0+ as fully supporting C++17
5d26efe38f Clang: Add final C++20 flag for Clang 11.0+
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4887
cc02ced530 find_program: Revert "Find programs that are executable but not readable"
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4871
cc02ced530 find_program: Revert "Find programs that are executable but not readable"
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4871
Clang isn't very good at finding the installed CUDA toolkit.
The upstream recommendation is that we should pass the toolkit explicitly.
Additionally:
* Avoids Clang having to search for the toolkit on every invocation.
* Allows the user to use a toolkit from a non-standard location by simply
setting CUDAToolkit_ROOT. The same way as with FindCUDAToolkit.
Clang wants the directory containing the device library and version.txt as the
toolkit path.
We thus pass the newly introduced CUDAToolkit_LIBRARY_ROOT as the toolkit path.
We save CUDAToolkit_ROOT_DIR and CUDAToolkit_LIBRARY_ROOT on Clang to have them
available in try_compile() and avoid unnecessary re-searching or a possibly
different installation being found in FindCUDAToolkit.
This however means that the selected toolkit can't be changed after the initial
language enablement.
We now determine CUDA compiler ID before doing actual detection, as we don't
want to spend time finding the CUDA toolkit for NVIDIA.
Implements #20754.
We can avoid searching for this since CUDAToolkit_TARGET_DIR always contains
the include/ directory. But add a warning just in case.
Also apply this in CMakeDetermineCUDACompiler for Clang code.
On scattered installations version.txt and nvvm are located at this location.
This may be useful to users and will allow us in the future to parse
version.txt instead of invoking nvcc to figure out the CUDA toolkit version.
We also add it to CMakeDetermineCUDACompiler in preparation for future use by
Clang code.
A portion of FindCUDAToolkit was previously split in commit dc2eae1f
(FindCUDAToolkit: Factor out discovery code into a separate file, 2020-04-22)
out into Internal/CUDAToolkit to allow re-use of the code in
CMakeDetermineCUDACompiler for Clang support.
This has turned out to be a bad solution due to Clang requiring quite a bit of
special handling and special handling for NVCC leaking out from
Internal/CUDAToolkit into the Clang code using it.
Thus it seems better to re-unify this code and duplicate the parts of the code
necessary for Clang where it's required. This will help us get logic correct
for both NVCC and CUDA handling. We can still unify the common parts in the
future once the code has matured.
Also add comments for sections to make it easier to figure out what's
going on.
Also rename the `cmake_test_unix_package` to be Linux-specific since it
actually is.
0f4777ab81 ci: don't test BundleGeneratorTest
77b44ed4ba gitlab-ci: add an Xcode tester
d33b38d4aa gitlab-ci: rename some scripts to be Linux-specific
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4883
0f4777ab81 ci: don't test BundleGeneratorTest
77b44ed4ba gitlab-ci: add an Xcode tester
d33b38d4aa gitlab-ci: rename some scripts to be Linux-specific
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4883
Updated the cmGlobalGenerator::Build method to check the return `retVal`
parameter supplied to the `cmSystemTools::RunSingleCommand` to validate
that each invocation of the build command returned an exit code of zero.
Fixes: #20790