summaryrefslogtreecommitdiffstats
path: root/Modules
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'gnu_c23' into release-3.21Brad King2021-07-231-2/+2
|\ | | | | | | | | | | | | d61bc4241d GNU: Correct C23 flags Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6376
| * GNU: Correct C23 flagsRaul Tambre2021-07-211-2/+2
| | | | | | | | | | | | | | Non-final forms aren't supported yet, unlike C++23. Seems I might've gotten confused due to that when I added these. Fixes #22453.
* | Merge topic 'iar-binutils' into release-3.21Brad King2021-07-233-86/+54
|\ \ | |/ |/| | | | | | | | | 5b9bfe738c IAR: Moved search logic to BinUtils. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6372
| * IAR: Moved search logic to BinUtils.Jean-Marc Hengen2021-07-233-86/+54
| | | | | | | | | | | | | | | | | | | | | | The search logic for the IAR linker, librarian and related tools is moved from `Modules/Compiler/IAR-FindBinUtils.cmake` to `Modules/CMakeFindBinUtils.cmake` by introducing an new elseif block for the IAR toolchain. The search logic was refactored to omit repeating itself. Fixes: #22425
* | CMakeDependentOption: Revert "Allow parentheses in the depends string"Brad King2021-07-201-4/+1
|/ | | | | | | | Revert commit 0665d9092e (CMakeDependentOption: Allow parentheses in the depends string, 2021-06-13, v3.21.0-rc1~32^2). It broke existing use cases with parentheses in regular expressions. Also add a test for this. Fixes: #22447
* Merge topic 'iar-exe-suffix' into release-3.21Brad King2021-07-201-2/+2
|\ | | | | | | | | | | | | | | 09bc0785ee Help: Document CMAKE_EXECUTABLE_SUFFIX_<LANG> explicitly 05a3bafe65 Compiler/IAR: Avoid clobbering CMAKE_EXECUTABLE_SUFFIX Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6357
| * Compiler/IAR: Avoid clobbering CMAKE_EXECUTABLE_SUFFIXLorenzo Cappelletti2021-07-201-2/+2
| | | | | | | | | | | | Use `CMAKE_EXECUTABLE_SUFFIX_<LANG>` instead. Fixes: #22426
* | Compiler/IAR: search for both IAR's binaries * and *.exeLorenzo Cappelletti2021-07-201-8/+24
|/ | | | | | | | | IAR is available for both Linux and Windows OSes. Moreover, binaries `*.exe` could be called from a Linux box, or vice versa. See also commit 01a4eec446 (IAR: Changes required for Linux, 2019-04-25, v3.15.0-rc1~185^2). Fixes: #22312
* CMakeDetermineCompilerId: Fix CMAKE_EXECUTABLE_FORMAT in CMP0126 NEW behaviorBrad King2021-07-191-4/+0
| | | | | | | | Setting `CMAKE_EXECUTABLE_FORMAT` as a normal variable is unnecessary because setting it as a cache entry already makes the value visible to the calling scope. Fixes: #22433
* Merge topic 'enable_language-CMP0126' into release-3.21Brad King2021-07-199-0/+28
|\ | | | | | | | | | | | | 3ddd7f3576 enable_language: Fix test for working compiler with CMP0126 NEW behavior Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6355
| * enable_language: Fix test for working compiler with CMP0126 NEW behaviorBrad King2021-07-159-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the logic that converts a `try_compile` result from a cache entry to a normal variable to tolerate an existing normal variable under CMP0126 NEW behavior. Otherwise the `try_compile` result is ignored because CMake uses the false value of the normal variable, and CMake incorrectly reports that the compiler does not work. This went unnoticed for some languages (e.g. C and CXX) because the check for a working compiler is skipped if ABI detection works. It does affect other languages (e.g. CSharp). Fixes: #22423
* | VS: Add CSharp VS 2022 compiler version and flag table v143Brad King2021-07-151-0/+4
| | | | | | | | | | | | While the flag tables for C and C++ were generated from MSBuild `.xml` files, the CSharp flag tables were written by hand. Copy the `v142` flag table to use for the `v143` toolset.
* | VS: Recognize CSharp VS 2019 compiler version v142Brad King2021-07-151-0/+4
|/
* ARMClang: Fix regression in check for working compilerLingkai Dong2021-07-142-11/+9
| | | | | | | | | | | | | | | | | | | Given the compiler to use, `CMakeFindBinUtils.cmake` automatically determines a number of tools including linker (CMAKE_LINKER) and archiver (CMAKE_AR) and stores them in a generated file `CMakeCCompiler.cmake` as non-CACHE entries. The compiler-specific ARMClang.cmake then tries to override CMAKE_LINKER and CMAKE_AR as CACHE entries. Following the introduction of CMP0126, which is set to NEW in the test for a working compiler, setting a CACHE entry does not replace a normal entry of the same name anymore, resulting in a failed test due to wrong linker and archiver. To fix this, set CMAKE_LINKER and CMAKE_AR for ARMClang directly in `CMakeFindBinUtils.cmake` as is done for other compilers. Check for them in `ARMClang.cmake` to safeguard cases when a project explicitly includes `ARMClang.cmake` prior to compiler determination (which some projects do to work around other problems in older CMake versions).
* Merge topic 'cpack-deb-post-ops' into release-3.21Brad King2021-07-131-1/+1
|\ | | | | | | | | | | | | 805fa791d1 CPack/DEB: Avoid overriding user-provided `postinst` and `postrm` Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6335
| * CPack/DEB: Avoid overriding user-provided `postinst` and `postrm`Alex Turbov2021-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When a user provides `CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA` or `CPACK_DEBIAN_<comp>_PACKAGE_CONTROL_EXTRA` variables in `CMakeLists.txt` and the package contains dynamic libraries, the `CPackDeb.cmake` sets `CPACK_ADD_LDCONFIG_CALL` to `1`. Later it analyzes if defaulted `postinst`/`postrm` should be generated trying to check if the user provides any in `CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA` variable. However, the `foreach` loop uses the invalid variable `PACKAGE_CONTROL_EXTRA` instead, so these files gonna be overridden. Fix the variable name. Fixes: #22410
* | Find{BLAS,LAPACK}: Avoid clobbering results when no vendor is requestedBrad King2021-07-122-4/+4
|/ | | | | | | | | | | | Logic added by commit 4c74c86f40 (FindBLAS/LAPACK: Add support for the Fujitsu SSL2 library, 2021-01-27, v3.21.0-rc1~402^2~1) accidentally expressed a boolean condition without proper grouping. The pattern was then copied by commit 2c9e623e31 (Find{BLAS,LAPACK}: Add support for the NVHPC LAPACK library, 2021-05-05, v3.21.0-rc1~192^2). The resulting logic incorrectly tries Fujitsu and NVHPC vendors even after results are found from another vendor, and then erases those. Fix the grouping. Fixes: #22403
* Merge topic 'FindJPEG-revert-turbo' into release-3.21Brad King2021-07-121-1/+1
|\ | | | | | | | | | | | | 0de1f1503b FindJPEG: Revert "Search for 'turbojpeg' and 'turbojpeg-static' too" Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6326
| * FindJPEG: Revert "Search for 'turbojpeg' and 'turbojpeg-static' too"Brad King2021-07-091-1/+1
| | | | | | | | | | | | | | | | | | Revert commit 74cc2e3326 (FindJPEG: Search for 'turbojpeg' and 'turbojpeg-static' too, 2021-01-09, v3.20.0-rc1~176^2) pending further investigation. The "turbo" variants are not drop-in replacements on all platforms. Fixes: #22333
| * Merge branch 'check_cxx_compiler_flag_no_normal_variable' into release-3.20Brad King2021-07-081-1/+0
| |\ | | | | | | | | | Merge-request: !6318
| * | IntelLLVM: Fix C/C++ standard level flags on WindowsBrad King2021-07-072-12/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | In commit a90d2a9eed (IntelLLVM: Add support for Intel LLVM-based compilers, 2020-11-02, v3.20.0-rc1~89^2~20) we accidentally left out activation of the C/C++ standard level selection logic when IntelLLVM is targeting the MSVC ABI. Fixes: #22388
* | | IAR: Use placeholders in linker and archiver rulesJean-Marc Hengen2021-07-081-7/+7
| | | | | | | | | | | | | | | | | | | | | Update the IAR linker and archiver rules to use the `<CMAKE_LINKER>` and `<CMAKE_AR>` placeholders instead of hard-coding the tool names. Fixes: #22395
* | | Merge topic 'FindCUDAToolkit-doc-version' into release-3.21Brad King2021-07-081-3/+8
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 266fc8ada5 FindCUDAToolkit: Properly document the version support Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6320
| * | | FindCUDAToolkit: Properly document the version supportRobert Maynard2021-07-071-3/+8
| | | |
* | | | Merge topic 'check_cxx_compiler_flag_no_normal_variable' into release-3.21Brad King2021-07-081-1/+0
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | 018d300ca0 Check*CompilerFlag: Do not set result as a normal variable too Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6318
| * | | Check*CompilerFlag: Do not set result as a normal variable tooRobert Maynard2021-07-081-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was previously fixed by commit d46590910c (Check*CompilerFlag: Do not set result as a normal variable too, 2020-09-21, v3.18.3~1^2^2), but was regressed by refactoring in commit 90dead024c (CheckCompilerFlag: unified way to check compiler flags per language, 2020-09-25, v3.19.0-rc1~88^2) due to the changes being developed concurrently. Fix it again, and add a test case. Fixes: #21207
* | | | IntelLLVM: Fix C/C++ standard level flags on WindowsBrad King2021-07-072-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit a90d2a9eed (IntelLLVM: Add support for Intel LLVM-based compilers, 2020-11-02, v3.20.0-rc1~89^2~20) we accidentally left out activation of the C/C++ standard level selection logic when IntelLLVM is targeting the MSVC ABI. Fixes: #22388
* | | | Merge topic 'correct_cuda_toolkit_version_typo' into release-3.21Brad King2021-07-071-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0d54276c82 Correct CUDAToolkit_VERSION_MINOR variable name typo Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Raul Tambre <raul@tambre.ee> Merge-request: !6311
| * | | | Correct CUDAToolkit_VERSION_MINOR variable name typoRobert Maynard2021-07-061-1/+1
| | |/ / | |/| |
* | | | DetermineCompiler: Restore identification of MSVC with no INCLUDE or LIBBrad King2021-07-012-2/+4
|/ / / | | | | | | | | | | | | | | | | | | Update the change from commit c6aaaf066a (DetermineCompiler: Restore identification of MSVC with no INCLUDE dirs, 2021-06-29, v3.21.0-rc2~6^2) to also work with no `LIB` dirs. Add the `-c` flag to compile an object file without linking.
* | | Merge topic 'fujitsu-clang-findbinutils' into release-3.21Brad King2021-06-302-0/+9
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6ce97c2248 FujitsuClang: Change LTO option from -flto=thin to -flto 3a0effcd16 FujitsuClang: Set CMAKE_<LANG>_COMPILER_AR and CMAKE_<LANG>_COMPILER_RANLIB Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6281
| * | | FujitsuClang: Change LTO option from -flto=thin to -fltoYuichiro Utsumi2021-06-291-0/+3
| | | | | | | | | | | | | | | | | | | | Since -flto=thin is not supported officially in FujitsuClang, change to -flto.
| * | | FujitsuClang: Set CMAKE_<LANG>_COMPILER_AR and CMAKE_<LANG>_COMPILER_RANLIBYuichiro Utsumi2021-06-291-0/+6
| | | | | | | | | | | | | | | | Fixes: #22337
* | | | Merge topic 'rpm-suggests' into release-3.21Brad King2021-06-301-0/+15
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9b53eca317 CPack/RPM: Fix weak dep support Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6274
| * | | | CPack/RPM: Fix weak dep supportAlex Sweet2021-06-291-0/+15
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RPM 4.11.3 for el7 contains backported support for the RPM weak dep tags. It only supports querying those tags, but rpmbuild can not make use of them. Since CPack relies on rpmbuild --querytags to check for support, this commit switches to rpm --suggests to check for support of weak dependencies. Fixes: #22350
* | | | DetermineCompiler: Restore identification of MSVC with no INCLUDE dirsBrad King2021-06-292-0/+8
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit bd844387df (ROCMClang: Add the ROCm toolkit derived clang compiler to CMake, 2020-08-28, v3.21.0-rc1~66^2~6), our generated compiler id source file contains a preprocessor condition of the form #elif ... && __has_include(...) When MSVC is invoked with no include directories in the `INCLUDE` environment variable or in `-I` flags, its implementation of `__has_include` errors out immediately. This breaks identification of the compiler. Work around the problem by adding a fallback attempt to compile the identification source using a dummy include directory.
* | | Merge topic 'yasm-no-deps' into release-3.21Brad King2021-06-281-7/+9
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | f03d54bfc1 ASM_NASM: Do not generate depfiles with YASM Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6265
| * | | ASM_NASM: Do not generate depfiles with YASMGregor Jasny2021-06-251-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 3aec26660a (Merge topic 'nasm_add_deps', 2021-03-03) the ASM_NASM language enabled the generation of GCC compatible depfiles for NASM. Unfortunatly, those are not supported by YASM. Fixes: #22341
* | | | Merge topic 'Help-UseJava-reorganization' into release-3.21Brad King2021-06-251-351/+454
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | af9bd6c53f Help: UseJava reorganization Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6262
| * | | | Help: UseJava reorganizationMarc Chevrier2021-06-241-351/+454
| |/ / / | | | | | | | | | | | | Fixes: #22155
* | | | Merge topic 'fujitsu-ipo' into release-3.21Brad King2021-06-251-0/+10
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 96e362fdc9 Fujitsu: Add IPO support for Fortran Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6261
| * | | | Fujitsu: Add IPO support for FortranPaul Zehner2021-06-241-0/+10
| |/ / /
* | | | FindOpenMP: Link with OpenMP flags on FujitsuEisuke Kawashima2021-06-241-0/+4
|/ / / | | | | | | | | | Fixes: #22332
* | | CUDA: Implement CMAKE_USER_MAKE_RULES_OVERRIDE[_CUDA]Seth R Johnson2021-06-221-0/+19
| | | | | | | | | | | | | | | This is implemented by other languages, and is documented for all languages. This was accidentally left out of CUDA.
* | | Merge topic 'ep-git-update-commit-ref' into release-3.21Brad King2021-06-211-1/+1
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 360ff17dc6 ExternalProject: Use ${ref}^0 to avoid MSYS/Cygwin shell substitutions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6249
| * | ExternalProject: Use ${ref}^0 to avoid MSYS/Cygwin shell substitutionsCraig Scott2021-06-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 5e941a545b (ExternalProject: Ensure git fetch if updating to hash we don't have yet, 2021-05-09), the form ${ref}^{commit} was used to ensure the ref was treated as a commit. When running under a MSYS2 or Cygwin shell, the {commit} part can be translated by the shell, leaving it as ${ref}^commit, which git doesn't understand. Use the equivalent but safer form ${ref}^0, since it won't be subject to the shell substitution issue. Fixes: #22299
* | | Merge topic 'GNUInstallDirs-alpine' into release-3.21Brad King2021-06-211-0/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 37b24e0bed GNUInstallDirs: don't use lib64 on Alpine Linux Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !6244
| * | | GNUInstallDirs: don't use lib64 on Alpine LinuxNatanael Copa2021-06-181-0/+1
| | | | | | | | | | | | | | | | Fixes: #22318
* | | | CompilerId: Tolerate variables named for languagesPhilippe Canal2021-06-181-6/+6
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a project or user sets a variable or cache entry named `C`, `CXX`, `CUDA`, `Fortran`, `CSharp`, or `ISPC`, we were previously comparing each enabled language name to the value of that variable, rather than the name itself. Double-quote the string to take advantage of policy `CMP0054`, but also add "x" prefixes to support projects that do not set the policy. This extends a similar fix in commit bd16a985fc (CompilerId/Features: Tolerate variables named for languages, 2021-04-28) in more places. In particular, ensure that we consider the proper list of compiler ids. Issue: #22125
* | | CheckCompilerFlag: Handle -Werror= for GCC 11Marc Aldorasi2021-06-171-2/+4
| | |