Commit Graph

11727 Commits

Author SHA1 Message Date
Brad King
05c2108229 Merge topic 'FindCUDATookit-ordering'
d930145841 FindCUDATookit: Fix ordering of libraries in imported targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6286
2021-07-02 08:10:23 -04:00
Brad King
a660f996d8 Merge topic 'compiler-id-msvc-no-lib'
e93245ec64 DetermineCompiler: Restore identification of MSVC with no INCLUDE or LIB

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6295
2021-07-02 08:05:53 -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
Dan Ibanez
d930145841 FindCUDATookit: Fix ordering of libraries in imported targets
Before this a downstream code linking to `CUDA::cusparse_static` and
`CUDA::curand_static` would get a link line with `libcusparse_static.a`,
then `libculibos.a`, then `libcurand_static.a`.  Use `IMPORTED_LOCATION`
to tell CMake about the proper dependency ordering where `libculibos.a`
comes last, because the other two libraries depend on `libculibos.a`.

Fixes: #22365
2021-07-01 12:18:27 -04:00
Chuck Atkins
8cce0ad32f FindMPI: Fix missing static warning in the mpi test source 2021-06-30 16:51:06 -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
d4a0d59472 Merge topic 'fujitsu-clang-findbinutils'
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
a63ae2f1b8 Merge topic 'rpm-suggests'
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
eb2ea3db8b Merge topic 'compiler-id-msvc-has-include'
c6aaaf066a DetermineCompiler: Restore identification of MSVC with no INCLUDE dirs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6284
2021-06-30 07:26:25 -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
c6223262a3 Merge topic 'Fortran-abi-f90'
97e2828d14 Fortran: Subsume F90 check into ABI check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6250
2021-06-28 09:23:45 -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
78908c3527 Merge topic 'yasm-no-deps'
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
Michael Hirsch
97e2828d14 Fortran: Subsume F90 check into ABI check
Follow the approach from commit 1d21dd0f7c (enable_language: Assume
compiler works if ABI detection compiles, 2020-05-25, v3.18.0-rc1~93^2)
to avoid a redundant check for F90 support.  Almost all maintained
Fortran compilers support F90 these days.

Fixes: #22222
2021-06-25 11:44:05 -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
d9ebfc844a Merge topic 'Help-UseJava-reorganization'
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
Brad King
5840c3eab7 Merge topic 'fujitsu-ipo'
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
Brad King
3e551ca51f Merge topic 'FindOpenMP-fujitsu'
b3bf33539b FindOpenMP: Link with OpenMP flags on Fujitsu

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6260
2021-06-25 07:22:55 -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
Brad King
7470ee3e05 Merge topic 'cuda-rules-override'
1d9009c27a CUDA: Implement CMAKE_USER_MAKE_RULES_OVERRIDE[_CUDA]

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6253
2021-06-23 08:55:27 -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
7d0018bd8e Merge topic 'ep-git-update-commit-ref'
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:37 -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
69b64ed85a Merge topic 'GNUInstallDirs-alpine'
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:49 -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
Brad King
a01a88dc95 Merge topic 'FindPkgConfig-PKG_CONFIG-args'
35d3e00e4e FindPkgConfig: split args if loaded from environment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6222
2021-06-21 09:53:51 -04:00
Brad King
cbdd6747ad Merge topic 'msvc-isystem'
f29e1874ad Compiler/MSVC: use the `-external:I` flag for system includes
5a5c85dffd Tests/IncludeDirectories: support MSVC in system include tests
399a3204bb Tests/IncludeDirectories: align sibling predicates
20ab49193b Tests/IncludeDirectories: factor out applying flags to targets
809f7b0c3a Tests/IncludeDirectories: fix copy pasta for otherlib
b094324948 Tests/IncludeDirectories: Include system headers via angle brackets
8f63f3b04e cmVisualStudio10TargetGenerator: remove unused variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Julien Waechter <greenjava@gmail.com>
Acked-by: DE-VS wenglor <devs.wenglor@gmail.com>
Merge-request: !4766
2021-06-21 09:50:52 -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
Christopher Degawa
35d3e00e4e FindPkgConfig: split args if loaded from environment
It's common for some people to use the PKG_CONFIG environment variable
to not only load a custom pkg-config/pkgconf but also to load some
default arguments such as `--static` or `--keep-system-libs` which often
worked since shell scripts would call `$PKG_CONFIG --libs pkg` without
quotes, but this breaks FindPkgConfig since it uses the full string as
`argv[0]` and might try looking for a binary called `pkgconf --static`,
instead of looking for `pkgconf` and adding `--static` as the `argv[1]`

Additionally adds RunCMake.FindPkgConfig ARGN test case

Fixes: #22305
Signed-off-by: Christopher Degawa <ccom@randomderp.com>
2021-06-18 11:10:12 -04:00
Ben Boeckel
f29e1874ad Compiler/MSVC: use the -external:I flag for system includes
See: #17904
2021-06-18 09:54:17 -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