summaryrefslogtreecommitdiffstats
path: root/Modules
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'cuda_clang_toolkit_path'Brad King2020-06-154-260/+415
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * CUDA: Determine CUDA toolkit location for NVCCRaul Tambre2020-06-123-123/+127
| | | | | | | | | | Similar to how we already do for Clang. Avoids a lot of redundant work in FindCUDAToolkit.
| * CUDA: Pass toolkit path to ClangRaul Tambre2020-06-122-235/+268
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * FindCUDAToolkit: Avoid unnecessary temporary variable computing binary dirRaul Tambre2020-06-121-6/+4
| |
| * FindCUDAToolkit: Remove unnecessary checks around searchesRaul Tambre2020-06-122-21/+15
| | | | | | | | | | find_*() don't search if the result variable is already set. Remove the if()s around such cases.
| * FindCUDAToolkit: Use list(SORT) to sort in natural orderRaul Tambre2020-06-122-72/+8
| | | | | | | | | | 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.
| * FindCUDAToolkit: Compute CUDAToolkit_INCLUDE_DIR instead of searchingRaul Tambre2020-06-122-8/+14
| | | | | | | | | | | | | | 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.
| * FindCUDAToolkit: Add CUDAToolkit_LIBRARY_ROOTRaul Tambre2020-06-122-0/+27
| | | | | | | | | | | | | | | | | | 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.
| * FindCUDAToolkit: Re-unify with Internal/CUDAToolkitRaul Tambre2020-06-123-233/+390
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge topic 'cuda_architectures_disable'Brad King2020-06-151-1/+1
|\ \ | | | | | | | | | | | | | | | | | | 877a92e968 CUDA: Add support for disabling CUDA_ARCHITECTURES Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4886
| * | CUDA: Add support for disabling CUDA_ARCHITECTURESRaul Tambre2020-06-151-1/+1
| |/ | | | | | | | | | | | | | | | | | | 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.
* | Merge topic 'clang_cxx20'Brad King2020-06-151-1/+8
|\ \ | | | | | | | | | | | | | | | | | | | | | 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
| * | Clang: Record Clang 6.0+ as fully supporting C++17Raul Tambre2020-06-131-0/+4
| | |
| * | Clang: Add final C++20 flag for Clang 11.0+Raul Tambre2020-06-131-1/+4
| |/ | | | | | | | | -std=c++20 superseded -std=c++2a in upstream Clang commit 24ad121582454e625bdad125c90d9ac0dae948c8.
| * Merge topic 'nvcc_supports_cuda17' into release-3.18Brad King2020-06-111-0/+11
| |\ | | | | | | | | | | | | | | | | | | 95700be52d CUDA: Teach CMake that NVCC 11 supports cuda_std_17 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4872
* | \ Merge topic 'findhdf5-temporary-files'Brad King2020-06-121-2/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 931492bd6f FindHDF5: use CMakeFiles for temporary files Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4879
| * | | FindHDF5: use CMakeFiles for temporary filesSeth R Johnson2020-06-111-2/+2
| | | |
* | | | Merge topic 'FindBoost-zip-libs'Brad King2020-06-121-4/+2
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | b76b4dea1c FindBoost: Allow Boost::zlib and Boost::bzip2 targets on all platforms Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4876
| * | | FindBoost: Allow Boost::zlib and Boost::bzip2 targets on all platformscorrea2020-06-111-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When boost is built with `BZIP2_SOURCE` or `ZLIB_SOURCE` it will generate boost versions of these libraries. Since commit cb1a434ce0 (FindBoost: Add check headers for `zlib` and `bzip2`, 2016-07-01, v3.7.0-rc1~400^2) we look for them only on Windows where they are commonly provided, but they may be available on every platform.
* | | | Merge topic 'add_explicit_lang_flag_to_compile_object_rule'Brad King2020-06-1112-3/+24
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 74b1c9fc8e Explicitly specify language flag when source LANGUAGE property is set 457170a476 CXX: Compile when possible with explicit `Cxx` language flag set 644d3b86eb C: Compile when possible with explicit `C` language flag set Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4780
| * | | | CXX: Compile when possible with explicit `Cxx` language flag setRobert Maynard2020-06-096-3/+12
| | | | | | | | | | | | | | | | | | | | Issue: #14516, #20716
| * | | | C: Compile when possible with explicit `C` language flag setRobert Maynard2020-06-096-0/+12
| |/ / / | | | | | | | | | | | | Issue: #14516, #20716
| * | | Merge topic 'cpack-ifw-3.2'Brad King2020-06-091-0/+2
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b79aad8069 CPack/IFW: Add Qt installer framework version 3.2 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4859
| * \ \ \ Merge topic 'FindOpenSSL-3.0'Brad King2020-06-091-2/+4
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 796b447373 FindOpenSSL: Fix OpenSSL 3.0.0 version extraction Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4860
* | \ \ \ \ Merge topic 'nvcc_supports_cuda17'Brad King2020-06-111-0/+11
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | / | | |_|_|/ | |/| | | | | | | | | | | | | 95700be52d CUDA: Teach CMake that NVCC 11 supports cuda_std_17 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4872
| * | | | CUDA: Teach CMake that NVCC 11 supports cuda_std_17Robert Maynard2020-06-101-0/+11
| | | | |
* | | | | FindProtobuf: Fix typo in documentationRon Klein2020-06-101-1/+1
|/ / / / | | | | | | | | | | | | typo: "filess" ==> "files"
* | | | Merge topic 'cpack-ifw-3.2' into release-3.18Brad King2020-06-091-0/+2
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | b79aad8069 CPack/IFW: Add Qt installer framework version 3.2 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4859
| * | | CPack/IFW: Add Qt installer framework version 3.2Frederik Gladhorn2020-06-081-0/+2
| |/ / | | | | | | | | | Qt 5.15 comes with IFW 3.2
* | | Merge topic 'FindOpenSSL-3.0' into release-3.18Brad King2020-06-091-2/+4
|\ \ \ | |/ / |/| / | |/ | | | | | | 796b447373 FindOpenSSL: Fix OpenSSL 3.0.0 version extraction Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4860
| * FindOpenSSL: Fix OpenSSL 3.0.0 version extractionBilly Brumley2020-06-081-2/+4
| | | | | | | | | | | | | | | | Fix the regex syntax added by commit 61d746e592 (FindOpenSSL: Detect OpenSSL 3.0.0, 2020-05-27, v3.17.3~1^2). Add missing escapes. Test with `openssl-3.0.0-alpha3`. While at it, also unset a temporary variable after use.
* | CPack/IFW: Fix documentation typo: REQUAREDFrederik Gladhorn2020-06-081-1/+1
| |
* | Merge topic 'cuda_cudart_status' into release-3.18Brad King2020-06-081-4/+4
|\ \ | | | | | | | | | | | | | | | | | | 7e2f86461a FindCUDAToolkit: Fix cudart not found status message Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4861
| * | FindCUDAToolkit: Fix cudart not found status messageRaul Tambre2020-06-081-4/+4
| | | | | | | | | | | | | | | | | | This ended up after the searching after commit dc2eae1 (FindCUDAToolkit: Factor out discovery code into a separate file, 2020-04-22). Move it back to where it was and should be.
* | | Merge topic 'cuda_clang_simulate' into release-3.18Brad King2020-06-081-0/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 0f88b7a592 CUDA: Fix Clang depfile flags when simulating MSVC Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4863
| * | | CUDA: Fix Clang depfile flags when simulating MSVCRaul Tambre2020-06-081-0/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | __compiler_clang() doesn't call __compiler_gnu() if we're emulating MSVC. Thus CMAKE_DEPFILE_FLAGS_CUDA remains unset and compiling doesn't work, due to NVCC dependency injection workaround in CMakeCUDAInformation.cmake, which triggers for Ninja if they're not set. Always set the depfile flags to fix this. Most other compiler modules seem to do the same.
* | | Merge topic 'cuda_user_architectures_specifiers' into release-3.18Brad King2020-06-081-2/+10
|\ \ \ | |/ / |/| | | | | | | | | | | | | | 4eaf1ef425 CUDA: Fix checking working architectures with specifiers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4856
| * | CUDA: Fix checking working architectures with specifiersRaul Tambre2020-06-051-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't distinguish real/virtual architectures during compiler detection. If the user passes -DCMAKE_CUDA_ARCHITECTURES="70-virtual" we'll test with only the real architecture. If it works "architectures" will end up as "70". We check equality using strings, so this fails and we incorrectly throw an error. Fix this by comparing against CMAKE_CUDA_ARCHITECTURES with the specifiers stripped. We need to deduplicate tested_architectures for the same reason in case the user specified something like "70-real;70-virtual".
* | | ARMClang: allow fallback to -march and correct setting of --cpu flagsOsama Moharam2020-06-031-10/+57
|/ / | | | | | | | | | | | | allows cmake to fall back to CMAKE_SYSTEM_ARCH in case CMAKE_SYSTEM_PROCESSOR is not in armclang -mcpu=list additionally checks if CMAKE_SYSTEM_PROCESSOR belongs to armlink --cpu=list Fixes: #19962
* | Merge topic 'armclang-armlink'Brad King2020-06-031-2/+14
|\ \ | | | | | | | | | | | | | | | | | | 73fb6ac82b ARMClang: Add support for armlink Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4811
| * | ARMClang: Add support for armlinkOsama Moharam2020-06-021-2/+14
| | | | | | | | | | | | | | | | | | sets CMAKE_LIBRARY_PATH_FLAG to '--userlibpath=' when using armlink. Fixes: #20761
* | | Merge branch 'backport-3.17-pch-no-Fortran' into pch-no-FortranBrad King2020-06-022-13/+17
|\ \ \ | |/ / |/| |
| * | PCH: Do not enable GNU or Intel PCH settings for FortranBrad King2020-06-022-11/+15
| |/ | | | | | | | | | | | | | | | | The PCH settings are shared by C and CXX languages but do not make sense for Fortran. In particular, `CMAKE_PCH_EXTENSION` should not be set because it can overwrite the value set for C/C++ languages, which may have a different compiler vendor than the Fortran compiler. Fixes: #20752
* | Merge topic 'UseSWIG-note-dep-strategy'Brad King2020-06-021-0/+8
|\ \ | | | | | | | | | | | | | | | | | | 1f543b23a8 UseSWIG: note dependency behavior for Make generators Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4834
| * | UseSWIG: note dependency behavior for Make generatorsBen Boeckel2020-06-011-0/+8
| | | | | | | | | | | | See: #20067
* | | Merge topic 'macos-sdk-libraries'Brad King2020-06-021-5/+21
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 444dbd40de Darwin: honour `CMAKE_OSX_SYSROOT` more faithfully Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4779
| * | | Darwin: honour `CMAKE_OSX_SYSROOT` more faithfullySaleem Abdulrasool2020-05-311-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The libraries in the SDK should be given precedence over the system libraries. Check for the default library search path (in default order) of `/usr/lib` and `/usr/local/lib` and use these as system prefix paths for libraries when performing the link step against a specified SDK.
* | | | ASM: Fix preprocessor definition flags for GNU 'as' toolKyle Edwards2020-06-011-0/+1
| |/ / |/| | | | | | | | Fixes: #20780
* | | Merge topic 'fc-ep-git-update-strategy'Brad King2020-06-012-59/+75
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8aa4d51ec5 ExternalProject: Add missing release note for git update strategy 1236590507 FetchContent: Pass through CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY if set e71c2807ba ExternalProject: Remote checkout needs to include the remote name Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4818
| * | | FetchContent: Pass through CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY if setCraig Scott2020-05-291-6/+11
| | | | | | | | | | | | | | | | | | | | This was missed when the initial support was added in commit 0aea435aa1 (ExternalProject: Provide choice of git update strategies, 2020-02-12)