Commit Graph

11715 Commits

Author SHA1 Message Date
Jean-Marc Hengen
bf810c75ac IAR: Use placeholders in linker and archiver rules
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
2021-07-08 08:08:52 -04:00
Brad King
eb692af623 Merge topic 'FindCUDAToolkit-doc-version' into release-3.21
266fc8ada5 FindCUDAToolkit: Properly document the version support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6320
2021-07-08 07:53:52 -04:00
Brad King
ecd557cbd7 Merge topic 'check_cxx_compiler_flag_no_normal_variable' into release-3.21
018d300ca0 Check*CompilerFlag: Do not set result as a normal variable too

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6318
2021-07-08 07:49:30 -04:00
Robert Maynard
018d300ca0 Check*CompilerFlag: Do not set result as a normal variable too
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
2021-07-08 07:44:03 -04:00
Robert Maynard
266fc8ada5 FindCUDAToolkit: Properly document the version support 2021-07-07 13:42:08 -04:00
Brad King
84036d30d4 IntelLLVM: Fix C/C++ standard level flags on Windows
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
2021-07-07 12:24:36 -04:00
Brad King
a1d0693175 Merge topic 'correct_cuda_toolkit_version_typo' into release-3.21
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
2021-07-07 09:29:06 -04:00
Robert Maynard
0d54276c82 Correct CUDAToolkit_VERSION_MINOR variable name typo 2021-07-06 08:43:13 -04:00
Brad King
e93245ec64 DetermineCompiler: Restore identification of MSVC with no INCLUDE or LIB
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.
2021-07-01 13:04:16 -04:00
Brad King
da79d6bdf6 Merge topic 'fujitsu-clang-findbinutils' into release-3.21
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
2021-06-30 07:31:39 -04:00
Brad King
e28c2ee9ae Merge topic 'rpm-suggests' into release-3.21
9b53eca317 CPack/RPM: Fix weak dep support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6274
2021-06-30 07:29:29 -04:00
Brad King
c6aaaf066a DetermineCompiler: Restore identification of MSVC with no INCLUDE dirs
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.
2021-06-29 12:55:35 -04:00
Alex Sweet
9b53eca317 CPack/RPM: Fix weak dep support
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
2021-06-29 11:14:54 -04:00
Yuichiro Utsumi
6ce97c2248 FujitsuClang: Change LTO option from -flto=thin to -flto
Since -flto=thin is not supported officially in FujitsuClang,
change to -flto.
2021-06-29 09:31:53 -04:00
Yuichiro Utsumi
3a0effcd16 FujitsuClang: Set CMAKE_<LANG>_COMPILER_AR and CMAKE_<LANG>_COMPILER_RANLIB
Fixes: #22337
2021-06-29 09:31:53 -04:00
Brad King
5430379ee6 Merge topic 'yasm-no-deps' into release-3.21
f03d54bfc1 ASM_NASM: Do not generate depfiles with YASM

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6265
2021-06-28 09:19:06 -04:00
Brad King
4a0e68266b Merge topic 'Help-UseJava-reorganization' into release-3.21
af9bd6c53f Help: UseJava reorganization

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6262
2021-06-25 07:24:46 -04:00
Brad King
fff5994e99 Merge topic 'fujitsu-ipo' into release-3.21
96e362fdc9 Fujitsu: Add IPO support for Fortran

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6261
2021-06-25 07:23:58 -04:00
Gregor Jasny
f03d54bfc1 ASM_NASM: Do not generate depfiles with YASM
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
2021-06-25 12:28:02 +02:00
Marc Chevrier
af9bd6c53f Help: UseJava reorganization
Fixes: #22155
2021-06-24 11:04:01 -04:00
Eisuke Kawashima
b3bf33539b FindOpenMP: Link with OpenMP flags on Fujitsu
Fixes: #22332
2021-06-24 09:09:49 -04:00
Paul Zehner
96e362fdc9 Fujitsu: Add IPO support for Fortran 2021-06-24 09:02:15 -04:00
Seth R Johnson
1d9009c27a CUDA: Implement CMAKE_USER_MAKE_RULES_OVERRIDE[_CUDA]
This is implemented by other languages, and is documented for
all languages.  This was accidentally left out of CUDA.
2021-06-22 09:59:01 -04:00
Brad King
b948b46668 Merge topic 'ep-git-update-commit-ref' into release-3.21
360ff17dc6 ExternalProject: Use ${ref}^0 to avoid MSYS/Cygwin shell substitutions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6249
2021-06-21 10:03:36 -04:00
Brad King
ed5bd39baa Merge topic 'GNUInstallDirs-alpine' into release-3.21
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
2021-06-21 09:56:48 -04:00
Craig Scott
360ff17dc6 ExternalProject: Use ${ref}^0 to avoid MSYS/Cygwin shell substitutions
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
2021-06-20 15:40:45 +10:00
Natanael Copa
37b24e0bed GNUInstallDirs: don't use lib64 on Alpine Linux
Fixes: #22318
2021-06-18 11:16:18 -04:00
Philippe Canal
c8eb357738 CompilerId: Tolerate variables named for languages
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
2021-06-18 09:41:08 -04:00
Marc Aldorasi
701773f1da CheckCompilerFlag: Handle -Werror= for GCC 11 2021-06-17 13:39:48 -04:00
Brad King
b642022046 AppleClang: Add flags for C17 and C23
Follow up commit 72f4984cdc (Clang: C23 support, 2021-02-07).
2021-06-16 15:50:55 -04:00
Steven A White
d3274e0a6f FindLATEX: Search user-local MiKTeX locations
I've noticed the default installer for MikTex does not prompt for
escalation.  So, many installations I find do not have registry entries.
This should cover finding it in the current defaults.
2021-06-16 08:25:34 -04:00
Daniel Schürmann
0665d9092e CMakeDependentOption: Allow parentheses in the depends string
`if()` takes the condition as a list of arguments.
Parentheses need to be separated as well.

Fixes: #22303
2021-06-14 13:45:49 -04:00
Brad King
6b218d2e26 Merge topic 'objc-std-17-23'
e8dc95ae1e ObjectiveC: Add C17 and C23 support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6219
2021-06-14 09:49:22 -04:00
Brad King
13b40c1ea2 Merge topic 'FindBLAS-LAPACK-docs'
5bf1651452 Find{BLAS,LAPACK}: Revise and extend Intel MKL usage documentation
8585a12bd9 Find{BLAS,LAPACK}: Move enabled language requirement to top of documentation
6a7c055f96 Find{BLAS,LAPACK}: Revise formatting of intro docs
43b581367d Find{BLAS,LAPACK}: Move implementation note from docs to comments
3beac78a13 Find{BLAS,LAPACK}: Revise imported targets documentation layout
6f305cd5fd Find{BLAS,LAPACK}: Factor out vendor documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6218
2021-06-14 09:48:37 -04:00
Gregor Jasny
e8dc95ae1e ObjectiveC: Add C17 and C23 support
Issue: #22297
2021-06-11 14:47:23 +02:00
Brad King
5bf1651452 Find{BLAS,LAPACK}: Revise and extend Intel MKL usage documentation
Fixes: #22295
2021-06-11 08:41:25 -04:00
Brad King
8585a12bd9 Find{BLAS,LAPACK}: Move enabled language requirement to top of documentation 2021-06-11 08:40:37 -04:00
Brad King
6a7c055f96 Find{BLAS,LAPACK}: Revise formatting of intro docs 2021-06-11 08:02:59 -04:00
Brad King
43b581367d Find{BLAS,LAPACK}: Move implementation note from docs to comments 2021-06-11 08:00:22 -04:00
Brad King
3beac78a13 Find{BLAS,LAPACK}: Revise imported targets documentation layout 2021-06-11 07:58:15 -04:00
Brad King
6f305cd5fd Find{BLAS,LAPACK}: Factor out vendor documentation
Move the list of vendors to a dedicated section shared by both modules.
Format it as a definition list.
2021-06-11 07:51:37 -04:00
Peter Knowles
130fa72bb3 Find{BLAS,LAPACK}: Update for Intel oneAPI structure under MKLROOT
Add search paths for the Intel oneAPI MKL directory structure
so that we do not rely on paths in `LD_LIBRARY_PATH`.
2021-06-11 06:55:09 -04:00
Brad King
4217e1cf3a Merge topic 'FindBLAS-mkl-gnu'
daa0a1f877 Find{BLAS,LAPACK}: Add tests covering Intel MKL with GNU compiler
624110b90d FindBLAS: Revert "Do not statically link against iomp5 ... Intel MKL"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6213
2021-06-11 06:05:54 -04:00
Brad King
624110b90d FindBLAS: Revert "Do not statically link against iomp5 ... Intel MKL"
Since commit 20ab504591 (FindBLAS: Do not statically link against iomp5
in the case of Intel MKL, 2021-04-11), we no longer find MKL's BLAS when
using the GNU compiler because FindOpenMP chooses libgomp instead of
libiomp5, and mkl_intel_thread depends on the latter.  Revert the change
for now.  A new approach will be needed to solve the original problem.

Issue: #21811
2021-06-10 12:39:00 -04:00
Brad King
3394dcb64f Merge topic 'irsl-intel-oneapi-windows'
6d4c51c29e IRSL: Add Intel oneAPI redist location on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6199
2021-06-09 07:56:28 -04:00
Brad King
7aad9e8685 Merge topic 'add_hip_language'
8514ee9b31 HIP: analyze output of `hipcc` to determine default GPU architecture
20d086f1a2 HIP: All HIP tests now run on CMake's current AMD hardware
2e86e50c2f HIP: Add HIP to all the Check* modules
947dbed0aa HIP: Automatically inject the `hip::device` runtime target
b50bfc8913 HIP: Add language to CMake
ff0d2858e1 HIP: Extract clang compiler details from hipcc
bd844387df ROCMClang: Add the ROCm toolkit derived clang compiler to CMake
590553f322 Compilers: protect use of  __has_include
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Zack Galbreath <zack.galbreath@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Acked-by: Axel Huebl <axel.huebl@plasma.ninja>
Merge-request: !6121
2021-06-09 07:53:32 -04:00
Brad King
6d4c51c29e IRSL: Add Intel oneAPI redist location on Windows
Fixes: #22283
2021-06-08 09:07:37 -04:00
Brad King
df1398aa97 Merge topic 'openssl-static'
98fa09d5be FindOpenSSL: Link with ws2_32 and crypt32 on Windows/static

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6197
2021-06-08 08:05:37 -04:00
Brad King
105e108836 Merge topic 'cpack-deb-minor-fixes'
ed1f3a5fa5 CPackDeb: output the error message when no description can be made
ece24b343a Help/cpack_gen/freebsd: improve wording for Debian fallbacks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !6196
2021-06-08 08:01:44 -04:00
Brad King
34eefc6ea3 Merge topic 'FindPkgConfigAlwaysAddTarget'
6f14205e08 FindPkgConfig: Always create the imported target
07d6390728 Tests: Add case covering FindPkgConfig creation of empty targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6113
2021-06-08 08:00:24 -04:00