Commit Graph

48587 Commits

Author SHA1 Message Date
Brad King
e5f5eeca2f file: Fix CONFIGURE output relative path
In commit a6fee09484 (file: Add CONFIGURE subcommand, 2020-03-06,
v3.18.0-rc1~584^2) we accidentally treated relative path outputs
with respect to the current working directory.  Treat them with
respect to the current binary directory instead.

Fixes: #20885
2020-06-29 09:20:42 -04:00
Brad King
e66fe75792 CMake 3.18.0-rc2 v3.18.0-rc2 2020-06-17 09:58:40 -04:00
Brad King
2ae33f7ace Merge topic 'cuda_clang_limitations' into release-3.18
bdb105ee94 Help: Mention CUDA Clang limitations in 3.18 release notes
fec7dd33d3 CUDA: Add issue number to Clang separable compilation error
14163d7d6b CUDA: Throw error for Clang on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4903
2020-06-17 06:44:25 -04:00
Brad King
56134e3690 Merge topic 'test-file-GET_RUNTIME_DEPENDENCIES' into release-3.18
9ae3382855 Tests: Shorten case names in RunCMake.file-GET_RUNTIME_DEPENDENCIES test
248d0570c9 Tests: Factor out RunCMake.file-GET_RUNTIME_DEPENDENCIES test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4904
2020-06-17 06:43:22 -04:00
Brad King
66d323bd63 Merge topic 'test-CudaOnly.StaticRuntimePlusToolkit' into release-3.18
cb9fab49dd Tests: Fix CudaOnly.StaticRuntimePlusToolkit build rpath

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4901
2020-06-17 06:41:56 -04:00
Raul Tambre
bdb105ee94 Help: Mention CUDA Clang limitations in 3.18 release notes 2020-06-16 14:07:39 -04:00
Raul Tambre
fec7dd33d3 CUDA: Add issue number to Clang separable compilation error 2020-06-16 14:07:30 -04:00
Raul Tambre
14163d7d6b CUDA: Throw error for Clang on Windows
Supporting compiling on Windows is more complicated than initially expected, so
it won't make it into CMake 3.18.
Add a helpful error for users.
2020-06-16 14:06:43 -04:00
Brad King
9ae3382855 Tests: Shorten case names in RunCMake.file-GET_RUNTIME_DEPENDENCIES test
Now that these cases are in a dedicated test we can drop the
`file-GET_RUNTIME_DEPENDENCIES-` prefix from their name.
2020-06-16 11:17:55 -04:00
Brad King
248d0570c9 Tests: Factor out RunCMake.file-GET_RUNTIME_DEPENDENCIES test
Move the `file(GET_RUNTIME_DEPENDENCIES)` cases out of `RunCMake.install`.
2020-06-16 11:17:55 -04:00
Brad King
3f110a0857 Merge topic 'test-RunCMake.GeneratorExpression' into release-3.18
6308bfb737 Tests: Factor out RunCMake.GenEx-GENEX_EVAL test
abe1c27499 Tests: Factor out RunCMake.GenEx-TARGET_FILE test
fbead761fe Tests: Factor out RunCMake.GenEx-DEVICE_LINK test
64a8587332 Tests: Factor out RunCMake.GenEx-HOST_LINK test
6f224a065c Tests: Factor out RunCMake.GenEx-LINK_LANG_AND_ID test
f3f6317ca3 Tests: Factor out RunCMake.GenEx-LINK_LANGUAGE test
983adb8bed Tests: Factor out RunCMake.GenEx-COMPILE_LANG_AND_ID test
931a6702f6 Tests: Factor out RunCMake.GenEx-COMPILE_LANGUAGE test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4899
2020-06-16 09:18:09 -04:00
Robert Maynard
cb9fab49dd Tests: Fix CudaOnly.StaticRuntimePlusToolkit build rpath 2020-06-16 08:30:42 -04:00
Brad King
6308bfb737 Tests: Factor out RunCMake.GenEx-GENEX_EVAL test
Move the `GENEX_EVAL` cases and friends out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:36 -04:00
Brad King
abe1c27499 Tests: Factor out RunCMake.GenEx-TARGET_FILE test
Move the `TARGET_FILE` cases and friends out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
fbead761fe Tests: Factor out RunCMake.GenEx-DEVICE_LINK test
Move the `DEVICE_LINK` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
64a8587332 Tests: Factor out RunCMake.GenEx-HOST_LINK test
Move the `HOST_LINK` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
6f224a065c Tests: Factor out RunCMake.GenEx-LINK_LANG_AND_ID test
Move the `LINK_LANG_AND_ID` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
f3f6317ca3 Tests: Factor out RunCMake.GenEx-LINK_LANGUAGE test
Move the `LINK_LANGUAGE` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
983adb8bed Tests: Factor out RunCMake.GenEx-COMPILE_LANG_AND_ID test
Move the `COMPILE_LANG_AND_ID` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:35 -04:00
Brad King
931a6702f6 Tests: Factor out RunCMake.GenEx-COMPILE_LANGUAGE test
Move the `COMPILE_LANGUAGE` cases out of `RunCMake.GeneratorExpression`.
2020-06-16 08:03:34 -04:00
Brad King
f37ff966d0 Merge topic 'gitlab-ci-restructure' into release-3.18
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
2020-06-15 10:31:35 -04:00
Brad King
7fa5ea130b Merge topic 'cuda_clang_toolkit_path' into release-3.18
ec59fb6c31 CUDA: Determine CUDA toolkit location for NVCC
0a056246a1 CUDA: Pass toolkit path to Clang
9c43972127 FindCUDAToolkit: Avoid unnecessary temporary variable computing binary dir
9eebb5b8b2 FindCUDAToolkit: Remove unnecessary checks around searches
8f01fe7bf1 FindCUDAToolkit: Use list(SORT) to sort in natural order
8c144fe9ad FindCUDAToolkit: Compute CUDAToolkit_INCLUDE_DIR instead of searching
403f8d31e3 FindCUDAToolkit: Add CUDAToolkit_LIBRARY_ROOT
6636693134 FindCUDAToolkit: Re-unify with Internal/CUDAToolkit

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4828
2020-06-15 09:25:29 -04:00
Brad King
a3881d6313 Merge topic 'cuda_architectures_disable' into release-3.18
877a92e968 CUDA: Add support for disabling CUDA_ARCHITECTURES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4886
2020-06-15 09:24:37 -04:00
Raul Tambre
877a92e968 CUDA: Add support for disabling CUDA_ARCHITECTURES
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.
2020-06-15 09:13:32 -04:00
Brad King
9fb67f690b Merge topic 'clang_cxx20' into release-3.18
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
2020-06-15 09:01:44 -04:00
Brad King
05546d695e Merge topic 'revert-find_program-exe-no-read' into release-3.18
cc02ced530 find_program: Revert "Find programs that are executable but not readable"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4871
2020-06-15 08:58:06 -04:00
Raul Tambre
b365385d66 Clang: Record Clang 6.0+ as fully supporting C++17 2020-06-13 11:29:55 +03:00
Raul Tambre
5d26efe38f Clang: Add final C++20 flag for Clang 11.0+
-std=c++20 superseded -std=c++2a in upstream Clang commit
24ad121582454e625bdad125c90d9ac0dae948c8.
2020-06-13 11:29:51 +03:00
Raul Tambre
ec59fb6c31 CUDA: Determine CUDA toolkit location for NVCC
Similar to how we already do for Clang. Avoids a lot of redundant work in
FindCUDAToolkit.
2020-06-12 23:13:57 +03:00
Raul Tambre
0a056246a1 CUDA: Pass toolkit path to Clang
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.
2020-06-12 21:50:05 +03:00
Raul Tambre
9c43972127 FindCUDAToolkit: Avoid unnecessary temporary variable computing binary dir 2020-06-12 21:49:15 +03:00
Raul Tambre
9eebb5b8b2 FindCUDAToolkit: Remove unnecessary checks around searches
find_*() don't search if the result variable is already set.
Remove the if()s around such cases.
2020-06-12 21:49:15 +03:00
Raul Tambre
8f01fe7bf1 FindCUDAToolkit: Use list(SORT) to sort in natural order
We had a custom loop to sort in the natural order. Since CMake 3.18 this is
supported natively by CMake and simplifies the code significantly.
2020-06-12 21:49:15 +03:00
Raul Tambre
8c144fe9ad FindCUDAToolkit: Compute CUDAToolkit_INCLUDE_DIR instead of searching
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.
2020-06-12 21:49:15 +03:00
Raul Tambre
403f8d31e3 FindCUDAToolkit: Add CUDAToolkit_LIBRARY_ROOT
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.
2020-06-12 21:49:15 +03:00
Raul Tambre
6636693134 FindCUDAToolkit: Re-unify with Internal/CUDAToolkit
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.
2020-06-12 21:49:15 +03:00
Ben Boeckel
6d168c41e3 gitlab-ci: split linux and macos shared before scripts
They're not actually the same anyways and the anchors can't be shared
between the files. We can figure out refactoring in the future.
2020-06-12 12:59:55 -04:00
Ben Boeckel
a1fe6ad621 gitlab-ci: use extends
YAML anchors are not supported across include files.
2020-06-12 12:56:03 -04:00
Ben Boeckel
fda8b79f88 gitlab-ci: add a comment describing what goes into a job 2020-06-12 12:28:29 -04:00
Ben Boeckel
2b4523c5f2 gitlab-ci: make rules a bit more uniform 2020-06-12 12:28:29 -04:00
Ben Boeckel
d6fe877cf9 gitlab-ci: split into multiple files
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.
2020-06-12 12:28:29 -04:00
Brad King
594fda9c23 Merge topic 'gitlab-ci-xcode-testing' into release-3.18
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
2020-06-12 12:26:28 -04:00
Ben Boeckel
0f4777ab81 ci: don't test BundleGeneratorTest
This test uses shared global resources and doesn't work well with the CI
infrastructure we have. It is tested by nightly builders however.
2020-06-12 11:23:36 -04:00
Ben Boeckel
77b44ed4ba gitlab-ci: add an Xcode tester 2020-06-12 11:23:36 -04:00
Ben Boeckel
d33b38d4aa gitlab-ci: rename some scripts to be Linux-specific
macOS install trees have a different layout and package names.
2020-06-12 11:23:19 -04:00
Brad King
3145264449 Merge topic 'gitlab-ci-ext-test-sets' into release-3.18
2e7cefec03 gitlab-ci: add a cuda10.2 builder
1a2961b895 Tests: add CUDA labels to tests which are affected by CUDA
2caa7502d5 ci: support running just a set of tests with external builders
26b4cbcf93 gitlab-ci: move Makefiles Linux tests to use the package

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4877
2020-06-12 11:02:35 -04:00
Brad King
81ea5eb637 Merge topic 'vs-lang-C' into release-3.18
5c04e77e07 VS: Restore compilation of '.C' sources as C++

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4880
2020-06-12 10:06:37 -04:00
Brad King
d42011e3cf Merge topic 'gitlab-ci-more-qtdialog' into release-3.18
d7679f6427 QCMakeCacheView: use non-deprecated List and Set constructions
973fc56020 gitlab-ci: test QtDialog on macOS
1a995439e5 ci: add download information for Qt on macOS
881c0b86dd gitlab-ci: test QtDialog on Windows
b8d46d5e50 ci: add a script to download Qt

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4874
2020-06-12 10:05:33 -04:00
Ben Boeckel
2e7cefec03 gitlab-ci: add a cuda10.2 builder 2020-06-12 09:13:21 -04:00
Brad King
cc02ced530 find_program: Revert "Find programs that are executable but not readable"
The fix in commit 86e6349ef7 (find_program: Find programs that are
executable but not readable, 2020-04-04, v3.18.0-rc1~372^2) can break
existing projects that were (likely accidentally) relying on the
old behavior to find files that are readable but not executable.
Revert the fix for now.  We can re-introduce it with a policy later.

Instead of reverting the test case, update it to cover the old behavior.
That can serve as a reference for testing the policy when introduced.

Fixes: #20814
Issue: #10468
2020-06-12 05:04:56 -04:00