summaryrefslogtreecommitdiffstats
path: root/Modules
Commit message (Collapse)AuthorAgeFilesLines
* GNU: C++23 supportRaul Tambre2021-05-101-0/+2
| | | | | | | Added in GCC commit 78739c2df788ee5c868d998a6333d453317d8711, released in 11.1. No lettered variant beforehand this time around. Implements #22139.
* GNU: Final C++20 flagsRaul Tambre2021-05-101-1/+4
| | | | Added in GCC commit fb26050409473f5be54465beca114b7e48de43aa, released in 11.1.
* GNU: C++17 default versionRaul Tambre2021-05-101-1/+1
| | | | Changed in GCC commit 0801f419440c14f6772b28f763ad7d40f7f7a580, released in 11.1.
* Merge topic 'FindBoost-1.76' into release-3.20Brad King2021-05-101-2/+2
|\ | | | | | | | | | | | | 79be37b94e FindBoost: Add support for Boost 1.76 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6100
| * FindBoost: Add support for Boost 1.76Brad King2021-05-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the list of known versions. Run the command cmake -DBOOST_DIR=/path/to/boost_1_76_0 \ -P Utilities/Scripts/BoostScanDeps.cmake to extract dependencies from the 1.76.0 source tree. They are the same as 1.75's dependencies, so just update the version check for warning about newer versions. Fixes: #22167
* | ExternalProject: Ensure git fetch if updating to hash we don't have yetCraig Scott2021-05-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | In ac6a4d4884 (ExternalProject: Improve robustness of update step, 2020-10-17), the method used to check whether we already have a commit or not was changed from using git rev-list to git rev-parse. The new logic assumed rev-parse would output nothing if given a commit hash it didn't know about, but it simply prints the hash again without raising an error in this scenario. Amend that logic by adding ^{commit} to the ref to ensure we do get an error if that ref is not currently known. Fixes: #22166
* | Merge topic 'improve_cuda_toolkit_extraction_regex' into release-3.20Brad King2021-05-073-3/+3
|\ \ | |/ |/| | | | | | | | | | | 5e931c5a97 CUDA: improve regex for CUDA Toolkit root from nvcc verbose output Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Raul Tambre <raul@tambre.ee> Merge-request: !6094
| * CUDA: improve regex for CUDA Toolkit root from nvcc verbose outputRobert Maynard2021-05-063-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | The original regular expression was greedy and would match any environment variable ending with `TOP` (like `DESKTOP`). This is an issue on windows where `nvcc -v` would output all environment variables before the compiler's verbose output. To resolve this issue we use a tighter match algorithm that looks for `#$ TOP=` instead of `TOP=`. Fixes: #22158
* | BinUtils: Use more-private temporary variable namesBrad King2021-05-041-10/+12
|/ | | | | | | | | | Since commit 4d786dfcfa (BinUtils: Avoid clobbering a variable named without a private prefix, 2021-04-06, v3.20.1~4^2) we use variables named `_tool` and `_name`, but these may still be common enough to affect project code. Use `_CMAKE_TOOL` and `_CMAKE_TOOL_NAME` instead, and unset them when finished. Fixes: #22140
* IntelLLVM: Add special case for ifx 2021.1 version extractionBrad King2021-04-281-0/+8
| | | | | | | The ifx beta versions forgot to define `__INTEL_LLVM_COMPILER`, and instead define `__INTEL_COMPILER == 201900`. Add a special case. Issue: #22120
* Intel: Update Classic compiler version detection for 2021Brad King2021-04-282-12/+30
| | | | | | | The value of the `__INTEL_COMPILER` macro changed convention starting in version 2021. Fixes: #22120
* Help: Do not recommend WCDH in cmake-compile-features(7)Brad King2021-04-231-0/+125
| | | | | | | | | Since commit da7ad7997e (WriteCompilerDetectionHeader: Add policy to remove module, 2020-12-04, v3.20.0-rc1~350^2), the WCDH module is deprecated. Update the `cmake-compile-features(7)` manual section that previously recommended WCDH to make such detection the project's responsibility instead. Move the old content of the section over to the WCDH module to preserve it.
* BinUtils: Restore toolchain prefix detection from compiler name 'c++'Lihua Zhao2021-04-161-1/+1
| | | | | | | | | Since commit b12aec6c8d (BinUtils: prefer bin utils matching the compiler version extension, 2020-12-11, v3.20.0-rc1~171^2) we recognize `clangg++` and `g++` but not `c++`. Restore `[gc]` in place of `g` in the regex, as we had before that change. Fixes: #22069
* Merge topic 'flags-with-backslash' into release-3.20Brad King2021-04-081-5/+6
|\ | | | | | | | | | | | | 3953dfcb31 Restore support for backslashes in initial language-wide flags Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5995
| * Restore support for backslashes in initial language-wide flagsBrad King2021-04-071-5/+6
| | | | | | | | | | | | | | | | | | | | Refactoring in commit bdc40742bd (CMakeDetermineCompilerId: Test without COMPILER_ID_FLAGS if REQUIRE_SUCCESS, 2021-02-27, v3.20.0-rc3~6^2) added an extra macro layer through which flag strings are passed. That caused an extra level of argument re-parsing, and broke flags with backslashes. Pass flags to the helper macro through variable names instead. Fixes: #22041
* | Merge topic 'cuda-depfile-ccbin' into release-3.20Brad King2021-04-082-1/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 8e38985db7 Makefiles: Fix dependency extraction with CUDA < 10.2 and host compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Raul Tambre <raul@tambre.ee> Acked-by: Robert Maynard <robertjmaynard@gmail.com> Merge-request: !5992
| * | Makefiles: Fix dependency extraction with CUDA < 10.2 and host compilerBrad King2021-04-072-1/+12
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 2c71d051fa (Makefiles Generators: use compiler for dependencies generation, 2020-10-18, v3.20.0-rc1~392^2) we invoke `nvcc` for CUDA < 10.2 a second time in order to generate a depfile. When `CMAKE_CUDA_HOST_COMPILER` is set, the second invocation is missing its `-ccbin=` option, even after refactoring in commit 8981e3e7cc (NVIDIA-CUDA: rely on new capabilities for deps generation, 2020-12-02, v3.20.0-rc1~362^2). Ideally we should move the `-ccbin=` flag into `Compiler/NVIDIA-CUDA`, but that will add `CMAKE_CUDA_HOST_COMPILER` support on Windows in command-line generators but not the Visual Studio generators. For now, add the flag to the depfile command specifically. Fixes: #22037
* | FindBLAS: Fix detection of OpenMP as dependency of BLA_STATICBrad King2021-04-071-2/+11
|/ | | | | | | | | | | | | | | Update the change from commit f7f3d8987a (FindBLAS: Add dependency of OpenBLAS on OpenMP for BLA_STATIC, 2020-11-10, v3.20.0-rc1~492^2): * If C is not enabled, find CXX OpenMP libraries instead. * Do not use BLA_STATIC's custom CMAKE_FIND_LIBRARY_SUFFIXES for OpenMP. It can break projects that already call `find_package(OpenMP)` and expect a shared library. Whether OpenMP is static is orthogonal to whether BLAS is static. Fixes: #22039 Issue: #16221
* Merge topic 'binutils-var-private' into release-3.20Brad King2021-04-071-10/+10
|\ | | | | | | | | | | | | 4d786dfcfa BinUtils: Avoid clobbering a variable named without a private prefix Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5986
| * BinUtils: Avoid clobbering a variable named without a private prefixBrad King2021-04-071-10/+10
| | | | | | | | | | | | | | | | | | Refactoring in commit b12aec6c8d (BinUtils: prefer bin utils matching the compiler version extension, 2020-12-11, v3.20.0-rc1~171^2) accidentally leaked a `TOOL` variable. Name temporary variables with a private prefix. Fixes: #22035
* | Merge topic 'ios-rpath-linker-flag' into release-3.20Brad King2021-04-071-5/+1
|\ \ | | | | | | | | | | | | | | | | | | 4aed96e230 Apple: Set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG on non-macOS too Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5980
| * | Apple: Set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG on non-macOS tooCraig Scott2021-04-061-5/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since CMake 3.19, we no longer support macOS SDKs older than 10.5, which corresponds to Xcode 3. Supporting older Xcode versions for device platforms is also not realistic. We therefore expect the -rpath linker option should always be supported now. When targeting iOS, tvOS or watchOS, the previous disabling of -rpath support meant that the install_name_dir of shared libraries and frameworks was unable to use @rpath. This resulted in embedding absolute paths for their install_name. When they were embedded in an app bundle, this would cause the app to fail at runtime. By enabling the -rpath linker option, the default install_name_dir is now @rpath for these platforms, which results in binaries that do work at runtime. Fixes: #20036
* | Merge topic 'nvhpc-lib-arch' into release-3.20Brad King2021-04-064-18/+52
|\ \ | | | | | | | | | | | | | | | | | | | | | 764606e256 CMakeDetermineCompilerABI: Extract lib arch from implicit object file paths 5d44d73bbe CMakeDetermineCompilerABI: Revert "Parse library arch from versioned paths" Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5984
| * | CMakeDetermineCompilerABI: Extract lib arch from implicit object file pathsRobert Maynard2021-04-053-11/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | The NVHPC compiler does not have any implicit link directories that can be used to detect `CMAKE_LIBRARY_ARCHITECTURE`, but it does have implicit object files. Extract implicit object file paths from link lines and check them for the `CMAKE_LIBRARY_ARCHITECTURE` pattern. Issue: #22024
| * | CMakeDetermineCompilerABI: Revert "Parse library arch from versioned paths"Robert Maynard2021-04-052-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change in commit 657fc3a9a7 (CMakeDetermineCompilerABI: Parse library arch from versioned paths, 2021-02-03, v3.20.0-rc1~40^2) caused `CMAKE_LIBRARY_ARCHITECTURE` to be populated on non-multiarch platforms if their compilers happen to use `$arch/$version` library directories. Revert the use of versioned library paths. Fixes: #22024
* | | Merge topic 'UseSWIG-policies' into release-3.20Brad King2021-04-061-15/+10
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | c3d0b25514 UseSWIG: Transform swig depfile to match Ninja generator paths 8c525d7e16 UseSWIG: Run using policy settings from includer Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5983
| * | | UseSWIG: Transform swig depfile to match Ninja generator pathsBrad King2021-04-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 89b01b04fa (UseSWIG: use swig tool to generate dependencies, 2021-01-12, v3.20.0-rc1~120^2) we use a tool-provided depfile to extract dependencies under the Ninja generator. Enable `CMP0116` to ensure depfile paths are translated to match what the Ninja generator writes to the build manfiest. Fixes: #22029
| * | | UseSWIG: Run using policy settings from includerMarc Chevrier2021-04-051-15/+8
| | |/ | |/| | | | | | | | | | | | | | | | | | | Backport commit de7f0aa6c0 (UseSWIG: avoid spurious policy warnings, 2021-02-11) to the 3.20 release branch. Projects need to be able to control policies. Issue: #22029
* | | FindHDF5: search for the new Fortran HL library nameBen Boeckel2021-04-051-1/+1
|/ / | | | | | | | | | | | | HDF5 1.10.6 renamed this library to match the other language binding library names. Fixes: #20205
* | FindMPI: avoid host link options to be propagated to device link stepMarc Chevrier2021-04-011-3/+4
| | | | | | | | Fixes: #21887
* | Cray: Detect Fortran compiler version patch level if availableJustin LaPolla2021-03-311-0/+3
| | | | | | | | Fixes: #21969
* | Android: Fix search for binutilsHaibo Huang2021-03-303-50/+52
| | | | | | | | | | | | | | | | Set `CMAKE_SYSTEM_PROGRAM_PATH` in `Platform/Android-Initialize` instead of `Platform/Android` so it can be used in `CMakeFindBinUtils`. Also add the names `llvm-strip` and `llvm-ranlib` for the corresponding tools.
* | Merge topic 'GNUInstallDirs-doc' into release-3.20Brad King2021-03-301-1/+4
|\ \ | | | | | | | | | | | | | | | | | | 06171fd7aa GNUInstallDirs: Clarify that CMAKE_INSTALL_<dir> may be absolute Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5947
| * | GNUInstallDirs: Clarify that CMAKE_INSTALL_<dir> may be absoluteBrad King2021-03-291-1/+4
| |/ | | | | | | Fixes: #21991
* | FindIntl: Fix detection of intl built in to C libraryBrad King2021-03-261-39/+53
| | | | | | | | | | | | | | | | | | | | | | Since commit c30d06b7e6 (FindIntl: Add imported target, 2020-10-06, v3.20.0-rc1~687^2) we use `check_symbol_exists` to check whether the `intl` library is built in to the C library. On some platforms the tested symbols are provided as macros so the check passes without linking any symbol. Instead, check whether a sample source file both compiles and links. Fixes: #21979
* | FindIntl: Improve documentation formattingSibi Siddharthan2021-03-261-17/+38
|/ | | | Backport from commit a9b11a06f5 (FindIntl: Add version support, 2021-02-23).
* Merge topic 'FindPkgConfig-NAMES_PER_DIR' into release-3.20Brad King2021-03-171-1/+4
|\ | | | | | | | | | | | | c7bd2d0d97 FindPkgConfig: Restore preference for first pkg-config in PATH Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5914
| * FindPkgConfig: Restore preference for first pkg-config in PATHBrad King2021-03-161-1/+4
| | | | | | | | | | | | | | | | | | | | Since commit ab8bd48352 (FindPkgConfig: Search for pkg-config.bat file on a Windows host, 2020-09-25, v3.19.0-rc1~98^2) we prefer `pkg-config.bat` over `pkg-config` regardless of the order they appear in the `PATH`. Tell `find_program` to consider all names in each directory so that the first one in `PATH` of any name wins. Issue: #21239
* | Merge topic 'FindOpenMP-IntelLLVM-Windows' into release-3.20Brad King2021-03-171-1/+6
|\ \ | | | | | | | | | | | | | | | | | | 6fd014a4b6 FindOpenMP: Use -Qiopenmp instead of -fiopenmp for IntelLLVM on Windows Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5904
| * | FindOpenMP: Use -Qiopenmp instead of -fiopenmp for IntelLLVM on WindowsWilliam R. Dieter2021-03-151-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Windows driver does not like the `-f` form of this option. Note that we prefer `-Qiopenmp/-fiopenmp` over `-Qopenmp/-fopenmp` in order to generate LLVM IR with parallelization information, which the backend uses to generate parallelized code. Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
* | | FindMatlab: R2021a version mapMichael Hirsch2021-03-151-0/+1
|/ /
* | Merge topic 'cray-compiler-wrapper-detection' into release-3.20Brad King2021-03-113-5/+5
|\ \ | |/ | | | | | | | | | | 13144e82cd Cray: Enable Cray compiler wrapper detection on all platforms Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5897
| * Cray: Enable Cray compiler wrapper detection on all platformsJustin LaPolla2021-03-103-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously were checking for the `__CRAYXC` and `__CRAYXE` predefined macros. These macros reflect the platform that the compiler wrapper is running on, i.e. Cray XC and Cray XE machines. They are not defined on other platforms such as Apollo80. Switch to the `__CRAYXT_COMPUTE_LINUX_TARGET` macro. The Cray cc/CC/ftn wrappers always define this macro on the command line. This macro has been in use for many years, and is believed to be a reliable way to detect current and older Cray compiler wrappers. Fixes: #21904
* | Merge topic 'ep-fc-revert-refactoring' into release-3.20Brad King2021-03-1020-1782/+1087
|\ \ | | | | | | | | | | | | | | | | | | 57d442e182 Revert ExternalProject and FetchContent refactoring Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5898
| * | Revert ExternalProject and FetchContent refactoringCraig Scott2021-03-0920-1782/+1087
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactoring of the ExternalProject and FetchContent modules moved the commands into CMake scripts. This broke custom commands that used shell redirection or special build tool variables of the form $(MakeVar). Undo the sequence of commits that performed this refactoring and follow-up fixes associated with it. The following commits are reverted by this change: 4f3d1abbb4 (ExternalProject: Refactor pre-configure steps to support no-target uses, 2021-02-05) 17e5516e60 (FetchContent: Invoke steps directly and avoid a separate sub-build, 2021-01-29) bd876f3849 (FetchContent: Restore patch command support, 2021-02-18) 404cddb7bb (ExternalProject: Fix misuse of IS_NEWER_THAN in timestamp checks, 2021-02-21) b0da671243 (FetchContent: Don't update timestamps if files don't change, 2021-02-18) Fixes: #21892
* | | FindMatlab: Fix Matlab_LIBRARIES for MCRSilvio Traversaro2021-03-091-2/+9
|/ / | | | | | | | | | | | | In commit bda5e2ac8f (FindMatlab: Only include engine and dataarray libraries if they are found, 2020-12-11, v3.20.0-rc1~297^2~1) we fixed the imported target to contain optional libraries only if they are found. Do the same for `Matlab_LIBRARIES`.
* | Merge topic 'CrayPrgEnv-detection' into release-3.20Brad King2021-03-093-5/+5
|\ \ | |/ | | | | | | | | | | 23b101de60 Revert "Cray: Fix Cray compiler detection on new platforms" Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5889
| * Revert "Cray: Fix Cray compiler detection on new platforms"Brad King2021-03-083-5/+5
| | | | | | | | | | | | | | | | | | | | The justification in commit 9ee4a42813 (Cray: Fix Cray compiler detection on new platforms, 2020-12-01, v3.19.2~26^2) confuses detection of the CrayPrgEnv with identification of the Cray compiler. The change regressed detection of the CrayPrgEnv on non-Cray compilers. Revert it pending further investigation into the original problem. Fixes: #21894
* | Cray: Enable explicit Fortran preprocessing for Ninja generatorBrad King2021-03-051-0/+4
| | | | | | | | | | | | | | | | | | Cray 11.0 adds support for preprocessing with output written to a specified file (instead of always next to the source). Use it to enable Cray Fortran with the Ninja generator. Patch-by: James Elliott Fixes: #20731
* | Merge topic 'android-r22' into release-3.20Brad King2021-03-032-1/+40
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 005e2cdfb0 Android: Do not use gold for ndk >= r22 ed7a87f270 Tests: Update RunCMake.Android for NDK r22 4950d35733 Help: Document CMAKE_ANDROID_NDK_VERSION variable 746906242d Android: Detect NDK version number Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5862