Commit Graph

11397 Commits

Author SHA1 Message Date
Brad King 6288974ba5 Merge topic 'nvhpc-minor-fixes'
72efd95add PGI: Explicitly specify CMAKE_CXX98_STANDARD_COMPILE_OPTION
6bfb2c6175 HELP: Update compile-features documentation with missing compilers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5857
2021-02-25 09:02:02 -05:00
Robert Maynard 72efd95add PGI: Explicitly specify CMAKE_CXX98_STANDARD_COMPILE_OPTION
The PGI ( and NVIDIA HPC ) compilers default C++ standard level
are based on the GCC system headers it is compiling against.

Therefore on newer platforms the default C++ level will be >= 11
and requesting C++98 compilation mode will fail as no explicit
flag will be set.
2021-02-24 13:47:03 -05:00
Brad King a70f8770f2 Merge topic 'better_cuda_compiler_detection_error_messages' into release-3.20
a0fc64ac24 CUDA: Improve error messages when CUDA compiler detection fails

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5844
2021-02-24 09:47:39 -05:00
Brad King 35b448a7dd Merge topic 'better_cuda_compiler_detection_error_messages'
a0fc64ac24 CUDA: Improve error messages when CUDA compiler detection fails

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5844
2021-02-24 09:47:39 -05:00
Robert Maynard a0fc64ac24 CUDA: Improve error messages when CUDA compiler detection fails 2021-02-23 09:21:42 -05:00
Brad King e1ea0c9540 Merge topic 'nag-fortran-include-moddir' into release-3.20
ec030877a2 NAG: Fix using Fortran modules from their output directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5842
2021-02-23 08:06:30 -05:00
Brad King 788f231e4c Merge topic 'nag-fortran-include-moddir'
ec030877a2 NAG: Fix using Fortran modules from their output directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5842
2021-02-23 08:06:30 -05:00
Brad King e9efa04d8d Merge topic 'fix-IS_NEWER_THAN-usage' into release-3.20
b0da671243 FetchContent: Don't update timestamps if files don't change
404cddb7bb ExternalProject: Fix misuse of IS_NEWER_THAN in timestamp checks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5825
2021-02-22 11:05:45 -05:00
Brad King 300a471245 Merge branch 'backport-FetchContent-timestamps' into fix-IS_NEWER_THAN-usage 2021-02-22 11:02:43 -05:00
Craig Scott 8c93e3232f GoogleTest: Fix misuse of IS_NEWER_THAN in timestamp check
When using a file system which only has second resolution timestamps,
there is a reasonably high likelihood of timestamps being the same.
The IS_NEWER_THAN test returns true when timestamps are the same,
so don't redo test discovery when they match exactly.
2021-02-22 11:02:38 -05:00
Craig Scott d7c8030541 FortranCInterface: Fix misuse of IS_NEWER_THAN in timestamp check
When using a file system which only has second resolution timestamps,
there is a reasonably high likelihood of timestamps being the same.
The IS_NEWER_THAN test returns true when timestamps are the same,
so don't redo detection when they match exactly.
2021-02-22 11:02:37 -05:00
Craig Scott b0da671243 FetchContent: Don't update timestamps if files don't change
The refactoring in 17e5516e60 (FetchContent: Invoke steps directly and
avoid a separate sub-build, 2021-01-29) uses a different way of writing
out the step scripts and updating time stamps when steps are executed.
That inadvertently always wrote out the scripts for custom commands,
even when the contents didn't change. This caused their timestamp to
always be updated, resulting in those steps always being seen as
out-of-date and needing to be re-executed.

The way timestamps were checked to determine whether to re-execute
a step also did not adequately account for file systems which only have
second-resolution timestamps. The IS_NEWER_THAN if condition also
returns true when timestamps are the same, so one needs to use the
negative form to get a true "is newer than" test.

ExternalProject is not susceptible to this problem because it uses
file(GENERATE) to write out the script files and that only updates the file's
timestamp if the contents change. It also mostly leaves timestamp
checking to the build tool.
2021-02-22 11:02:20 -05:00
Craig Scott 404cddb7bb ExternalProject: Fix misuse of IS_NEWER_THAN in timestamp checks
When using a file system which only has second resolution timestamps,
there is a reasonably high likelihood of timestamps being the same.
The IS_NEWER_THAN test returns true when timestamps are the same,
so don't redo downloads when they match exactly.
2021-02-22 11:02:20 -05:00
Brad King ec030877a2 NAG: Fix using Fortran modules from their output directory
The NAG Fortran compiler's `-mdir` flag sets the module output
directory but does not add the directory to the search path for using
modules.  This is inconsistent with other compilers like the GNU Fortran
compiler's `-J` flag that does both.  In order to make these consistent,
add the module output directory with a `-I` flag on the NAG Fortran
compiler so that it will be searched when using modules too.

We already do this for the XL Fortran compiler since commit 210b0b99a9
(XL: Fix using Fortran modules from their output directory, 2020-02-28,
v3.18.0-rc1~640^2~1).
2021-02-22 09:38:12 -05:00
Brad King 020d8c85e2 Merge topic 'intel-fortran-preprocess' into release-3.20
c9244f369a IntelLLVM: Make explicit Fortran preprocessing under Ninja more robust
056d4bf528 Merge branch 'backport-intel-fortran-preprocess'
af074c266e Intel: Make explicit Fortran preprocessing under Ninja more robust

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5826
2021-02-19 09:35:18 -05:00
Brad King b3822e6508 Merge topic 'intel-fortran-preprocess'
c9244f369a IntelLLVM: Make explicit Fortran preprocessing under Ninja more robust
056d4bf528 Merge branch 'backport-intel-fortran-preprocess'
af074c266e Intel: Make explicit Fortran preprocessing under Ninja more robust

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5826
2021-02-19 09:35:18 -05:00
Brad King 94408da2a7 Merge topic 'fix-intel-compiler-check' into release-3.20
dc7b6c2c06 DetermineCompiler: Fix copy-paste error in Intel Compiler detection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5818
2021-02-18 08:19:45 -05:00
Brad King 1af93f93df Merge topic 'fix-intel-compiler-check'
dc7b6c2c06 DetermineCompiler: Fix copy-paste error in Intel Compiler detection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5818
2021-02-18 08:19:45 -05:00
Craig Scott cb2dc8207c Merge topic 'fetchcontent-patch-step-typo'
bd876f3849 FetchContent: Restore patch command support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5822
2021-02-18 07:39:23 -05:00
Brad King c9244f369a IntelLLVM: Make explicit Fortran preprocessing under Ninja more robust
Tell the Fortran compiler to write preprocessor output directly to a
file, as we do for the GNU compiler.  The previous "redirect stdout"
approach could break during ABI detection with some `mpif90` wrappers
that add version information to stdout when called with `-v`.

Issue: #21828
2021-02-18 07:36:32 -05:00
Brad King 056d4bf528 Merge branch 'backport-intel-fortran-preprocess' 2021-02-18 07:35:35 -05:00
Brad King af074c266e Intel: Make explicit Fortran preprocessing under Ninja more robust
Tell the Fortran compiler to write preprocessor output directly to a
file, as we do for the GNU compiler.  The previous "redirect stdout"
approach could break during ABI detection with some `mpif90` wrappers
that add version information to stdout when called with `-v`.

Fixes: #21828
2021-02-18 07:35:12 -05:00
Craig Scott bd876f3849 FetchContent: Restore patch command support
The refactoring in 17e5516e60 (FetchContent: Invoke steps directly and
avoid a separate sub-build, 2021-01-29) contained a typo which resulted
in any PATCH_COMMAND being ignored. Fix the typo and add a test case
that would have caught the regression.
2021-02-18 09:40:39 +11:00
Gregor Jasny dc7b6c2c06 DetermineCompiler: Fix copy-paste error in Intel Compiler detection
Fixes: #21561
Fixes: a90d2a9eed (IntelLLVM: Add support for Intel LLVM-based compilers, 2020-11-02)
2021-02-17 08:23:45 +01:00
Brad King 67079c2a89 Merge topic 'FindPython-fix-variable-handling' into release-3.20
754f4f6876 FindPython: fix erroneous variable handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5816
2021-02-16 12:07:17 -05:00
Brad King fc76273519 Merge topic 'FindPython-fix-variable-handling'
754f4f6876 FindPython: fix erroneous variable handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5816
2021-02-16 12:07:17 -05:00
Marc Chevrier 754f4f6876 FindPython: fix erroneous variable handling
Fixes: #21817
2021-02-16 10:46:28 -05:00
Brad King ae83d2b5ff Merge topic 'cuda_cleanup'
af38d5a1d4 Platform/Windows-NVIDIA-CUDA: Remove duplicated code
4dc1c9e525 CUDA: Fix spelling __IMPLICT_ -> __IMPLICIT_
4620cf77f2 Clang: Remove unused CUDA implicit link variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5812
2021-02-16 10:44:24 -05:00
Brad King e6d6cf9022 Merge topic 'FindPNG-advanced-variables' into release-3.20
17ae4e1bef FindPNG: only mark used variables as advanced

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5809
2021-02-16 10:41:26 -05:00
Brad King 13992723d8 Merge topic 'FindPNG-advanced-variables'
17ae4e1bef FindPNG: only mark used variables as advanced

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5809
2021-02-16 10:41:26 -05:00
Brad King 516c0736e8 Merge topic 'IntelLLVM-unused-C17' into release-3.20
4642c81c72 IntelLLVM: Remove incomplete C17 support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5805
2021-02-16 10:40:29 -05:00
Brad King 264f7d76fe Merge topic 'IntelLLVM-unused-C17'
4642c81c72 IntelLLVM: Remove incomplete C17 support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5805
2021-02-16 10:40:29 -05:00
Brad King 4642c81c72 IntelLLVM: Remove incomplete C17 support
CMake does not yet model support for C17.  Avoid possible confusion by
removing the settings for IntelLLVM pending a full implementation.
2021-02-15 10:43:35 -05:00
Ben Boeckel 17ae4e1bef FindPNG: only mark used variables as advanced
The `PNG_LIBRARY` variable is an output and not a cache variable.

Fixes some CMP0102 warnings.
2021-02-15 10:33:01 -05:00
Brad King 54f6928ebc Merge topic 'cuda-nvcc-output'
9ea66b2d86 CUDA: Capture all nvcc output when extracting toolkit root

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Tested-by: Raul Tambre <raul@tambre.ee>
Acked-by: Rong Ou <rong.ou@gmail.com>
Merge-request: !5804
2021-02-15 10:29:25 -05:00
Brad King c1e90c5544 Merge topic 'cuda-nvcc-output' into release-3.20
9ea66b2d86 CUDA: Capture all nvcc output when extracting toolkit root

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Tested-by: Raul Tambre <raul@tambre.ee>
Acked-by: Rong Ou <rong.ou@gmail.com>
Merge-request: !5804
2021-02-15 10:29:24 -05:00
Brad King 26eae560ff Merge topic 'FindGDAL-improvements' into release-3.20
55e493928b FindGDAL: add release note
f4b53fadda FindGDAL: support finding additional GDAL library names
1b2774450d FindGDAL: add support for skipping gdal-config
1621cb3eb1 FindGDAL: add documentation to cache variables
3caaff4c08 FindGDAL: conditionally set the output variables
3f6a4f2062 FindGDAL: mark cache variables as advanced
02e906305d FindGDAL: use execute_process instead of exec_program
140344da14 FindGDAL: fix some indentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5799
2021-02-15 10:21:18 -05:00
Brad King 58a2f5d029 Merge topic 'FindGDAL-improvements'
55e493928b FindGDAL: add release note
f4b53fadda FindGDAL: support finding additional GDAL library names
1b2774450d FindGDAL: add support for skipping gdal-config
1621cb3eb1 FindGDAL: add documentation to cache variables
3caaff4c08 FindGDAL: conditionally set the output variables
3f6a4f2062 FindGDAL: mark cache variables as advanced
02e906305d FindGDAL: use execute_process instead of exec_program
140344da14 FindGDAL: fix some indentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5799
2021-02-15 10:21:18 -05:00
Raul Tambre af38d5a1d4 Platform/Windows-NVIDIA-CUDA: Remove duplicated code
Some of the things are set in Platform/NVIDIA-CUDA and since we aren't setting
them to different values there's no point in overriding them.
Also fixed an unset() copy-paste error.
2021-02-14 11:53:26 +02:00
Raul Tambre 4dc1c9e525 CUDA: Fix spelling __IMPLICT_ -> __IMPLICIT_ 2021-02-14 11:53:24 +02:00
Raul Tambre 4620cf77f2 Clang: Remove unused CUDA implicit link variables
We don't use/need implicit links for Clang with CUDA.
2021-02-14 11:38:02 +02:00
Ben Boeckel f4b53fadda FindGDAL: support finding additional GDAL library names 2021-02-12 07:43:23 -05:00
Brad King 9ea66b2d86 CUDA: Capture all nvcc output when extracting toolkit root
Since commit fb2afef620 (CUDA: Support nvcc symlinking to ccache,
2021-01-07) and commit 3cef91a321 (CUDA: Always extract CUDA Toolkit
root from nvcc verbose output, 2021-02-03) we always run the command
`nvcc -v __cmake_determine_cuda` to look for the toolkit root in its
stderr.  On Windows, that command may print to stdout instead, so
capture that as well.
2021-02-12 07:23:48 -05:00
Brad King fece2db132 Merge topic 'UseSWIG-avoid-spurious-policy-warnings'
de7f0aa6c0 UseSWIG: avoid spurious policy warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5802
2021-02-12 06:55:17 -05:00
Brad King a86cd9cb3c Merge topic 'FindMPI-lang-reason' into release-3.20
8251b62ba0 FindMPI: Fix reason for a non-enabled non-requested language

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5801
2021-02-12 06:53:41 -05:00
Brad King aa191f3ac2 Merge topic 'FindMPI-lang-reason'
8251b62ba0 FindMPI: Fix reason for a non-enabled non-requested language

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5801
2021-02-12 06:53:41 -05:00
Felipe Torrezan 8ee933900e IAR: add support for the STM8 compiler 2021-02-12 06:51:05 -05:00
Marc Chevrier de7f0aa6c0 UseSWIG: avoid spurious policy warnings 2021-02-11 17:17:10 +01:00
Ben Boeckel 1b2774450d FindGDAL: add support for skipping gdal-config
This can be confusing if there are autotools and CMake-built GDAL builds
within the same environment as the autotools variant will always be
preferred.
2021-02-11 09:46:10 -05:00
Ben Boeckel 1621cb3eb1 FindGDAL: add documentation to cache variables 2021-02-11 09:46:10 -05:00