Commit Graph

52165 Commits

Author SHA1 Message Date
Robert Maynard
f78b167a23 cmCommandLineArgument: Provide more information syntax error messages 2021-05-13 09:33:30 -04:00
Robert Maynard
5aa0dec6b0 cmake: --build and --install error out when encountering bad flags
Fixes #22186
2021-05-13 09:28:42 -04:00
Robert Maynard
928cdb17c5 cmCommandLineArgument: Correctly record parsing failures 2021-05-12 09:43:33 -04:00
Brad King
1ad4501ae9 CMake 3.20.2 v3.20.2 2021-04-29 09:53:54 -04:00
Brad King
402df643e5 Merge topic 'intel-2021' into release-3.20
9c479c7c40 IntelLLVM: Add special case for ifx 2021.1 version extraction
b7193ab18f Intel: Update Classic compiler version detection for 2021

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6052
2021-04-29 09:15:32 -04:00
Brad King
9c479c7c40 IntelLLVM: Add special case for ifx 2021.1 version extraction
The ifx beta versions forgot to define `__INTEL_LLVM_COMPILER`, and
instead define `__INTEL_COMPILER == 201900`.  Add a special case.

Issue: #22120
2021-04-28 10:21:27 -04:00
Brad King
b7193ab18f Intel: Update Classic compiler version detection for 2021
The value of the `__INTEL_COMPILER` macro changed convention starting
in version 2021.

Fixes: #22120
2021-04-28 10:20:59 -04:00
Brad King
21c40086ee Merge topic 'doc-compile-features-wcdh' into release-3.20
1f4ec3f4a7 Help: Do not recommend WCDH in cmake-compile-features(7)
1cc63f2cd5 Help: Fix typos in cmake-compile-features(7)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6037
2021-04-26 11:27:17 -04:00
Brad King
71087120b9 Merge topic 'ninja-multi-custom-target-post-build' into release-3.20
f8e2a74712 Ninja Multi-Config: Correctly generate POST_BUILD custom targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6040
2021-04-26 11:25:46 -04:00
Brad King
1f4ec3f4a7 Help: Do not recommend WCDH in cmake-compile-features(7)
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.
2021-04-23 10:44:53 -04:00
Brad King
1cc63f2cd5 Help: Fix typos in cmake-compile-features(7) 2021-04-23 10:44:01 -04:00
Kyle Edwards
f8e2a74712 Ninja Multi-Config: Correctly generate POST_BUILD custom targets
Fixes: #22096
2021-04-22 15:51:53 -04:00
Brad King
dd44a98bfe Merge topic 'update-kwiml' into release-3.20
bd8cc6d603 Merge branch 'upstream-KWIML' into update-kwiml
873dbc52e9 KWIML 2021-04-21 (49d91529)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6032
2021-04-22 10:22:26 -04:00
Brad King
bd8cc6d603 Merge branch 'upstream-KWIML' into update-kwiml
# By KWIML Upstream
* upstream-KWIML:
  KWIML 2021-04-21 (49d91529)
2021-04-21 10:55:02 -04:00
KWIML Upstream
873dbc52e9 KWIML 2021-04-21 (49d91529)
Code extracted from:

    https://gitlab.kitware.com/utils/kwiml.git

at commit 49d9152941311c05d281b1f927368b1efbb33a01 (master).

Upstream Shortlog
-----------------

Xiaotian Wu (1):
      49d91529 abi.h: Add LoongArch64 support
2021-04-21 10:55:02 -04:00
Brad King
b0f203f133 Merge topic 'autogen-clear-early-source-cache' into release-3.20
b84f1e6159 Autogen: Restore mocs_compilation in OBJECT libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6024
2021-04-21 10:42:16 -04:00
Brad King
b84f1e6159 Autogen: Restore mocs_compilation in OBJECT libraries
Since commit f65f20938c (Autogen: Avoid processing CSharp targets,
2020-11-12, v3.20.0-rc1~301^2) we collect all sources for a target
earlier than previously.  Clear the sources cache so that it will be
re-computed later after AUTOGEN processing.

Fixes: #22085
2021-04-20 16:04:08 -04:00
Brad King
b0be93c5c7 Merge topic 'doc-if-IS_ABSOLUTE' into release-3.20
6234afdff4 Help: Document special cases for if(IS_ABSOLUTE)
789307b02f Help: Behavior of file(TO_NATIVE_PATH) depends on the host platform

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6016
2021-04-20 09:58:51 -04:00
Brad King
dc7871739f Merge topic 'cxxprefix' into release-3.20
4c741d945a BinUtils: Restore toolchain prefix detection from compiler name 'c++'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Thomas Bernard <thomas@famillebernardgouriou.fr>
Merge-request: !6011
2021-04-19 09:44:50 -04:00
Brad King
a2372f64b4 Merge topic 'mrjoel/add-missing-not' into release-3.20
370bebd921 Add missing 'not' in error messages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6012
2021-04-19 09:44:02 -04:00
Craig Scott
6234afdff4 Help: Document special cases for if(IS_ABSOLUTE)
The meaning of "absolute path" was previously assumed knowledge,
but a number of special cases were left unspecified. The way some of
these are handled differs to the way that cmake_path(IS_ABSOLUTE)
works, so document those special cases so that the differing behavior
between these two commands is clearly defined.
2021-04-17 19:41:53 +10:00
Craig Scott
789307b02f Help: Behavior of file(TO_NATIVE_PATH) depends on the host platform 2021-04-17 19:41:53 +10:00
Brad King
afba2709f7 Merge topic 'ci-lint-delay' into release-3.20
661ff7f2d8 gitlab-ci: equally delay all jobs on integration branches

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6013
2021-04-16 13:24:04 -04:00
Brad King
661ff7f2d8 gitlab-ci: equally delay all jobs on integration branches
When running a pipeline on an integration branch in `cmake/cmake`, delay
the lint jobs just as much as all the others.  This avoids starting them
unnecessarily during a sequence of merges over a short time range.
2021-04-16 12:15:15 -04:00
Brad King
e9da93e066 Merge topic 'depfile-reader-thread-safety' into release-3.20
53d523f2e1 autogen: fix race in depfile parsing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6008
2021-04-16 11:35:47 -04:00
Joel Johnson
370bebd921 Add missing 'not' in error messages 2021-04-16 07:47:59 -06:00
Lihua Zhao
4c741d945a BinUtils: Restore toolchain prefix detection from compiler name 'c++'
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
2021-04-16 09:20:16 -04:00
Kyle Edwards
53d523f2e1 autogen: fix race in depfile parsing
cmReadGccDepfile() calls cmSystemTools::CollapseFullPath(), which
is not thread safe due to internal caching. Serialize calls to
cmReadGccDepfile() in autogen to avoid thread safety issues.

Fixes: #22014
2021-04-15 15:25:38 -04:00
Brad King
81d796e3f2 Merge topic 'doc-error-unknown-arg' into release-3.20
06d26c7baf Help: Add 3.20 release note for error on unknown arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6003
2021-04-15 11:07:33 -04:00
Brad King
06d26c7baf Help: Add 3.20 release note for error on unknown arguments
This was left out of commit 1b6c5333a0 (cmake: Error out on unknown
arguments starting with `-`., 2020-11-30, v3.20.0-rc1~370^2).

Fixes: #22060
2021-04-14 11:46:05 -04:00
Brad King
b4a29a8d42 Merge topic 'openbsd-defines' into release-3.20
317a477283 OpenBSD: Fix system feature definitions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6000
2021-04-14 11:04:29 -04:00
Rafael Sadowski
317a477283 OpenBSD: Fix system feature definitions
Since commit f034b0f663 (CMake compilation: do not use compiler
extensions, 2020-03-14, v3.18.0-rc1~494^2), some sources explicitly
enable needed system APIs on some platforms using definitions like
`_POSIX_C_SOURCE` and `_XOPEN_SOURCE`.  Drop the definitions for
OpenBSD, which provides the POSIX APIs by default.
2021-04-14 11:02:29 -04:00
Brad King
d96ae57fb6 Merge topic 'ci-parallelism-limits' into release-3.20
3fd2cffb4d ci: limit builds by machine load
6317f92120 ci: pay attention to the machine load when running tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5989
2021-04-14 10:55:17 -04:00
Brad King
9765ccfa71 CMake 3.20.1 v3.20.1 2021-04-08 08:00:50 -04:00
Brad King
9be8441c20 Merge topic 'flags-with-backslash' into release-3.20
3953dfcb31 Restore support for backslashes in initial language-wide flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5995
2021-04-08 07:47:08 -04:00
Brad King
6d27dd3d98 Merge topic 'cuda-depfile-ccbin' into release-3.20
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
2021-04-08 07:46:14 -04:00
Brad King
d6a0b24d10 Merge topic 'FindBLAS-default-OpenMP' into release-3.20
9ef82d95d8 FindBLAS: Fix detection of OpenMP as dependency of BLA_STATIC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5993
2021-04-08 07:45:13 -04:00
Brad King
3953dfcb31 Restore support for backslashes in initial language-wide flags
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
2021-04-07 13:53:22 -04:00
Brad King
9ef82d95d8 FindBLAS: Fix detection of OpenMP as dependency of BLA_STATIC
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
2021-04-07 11:26:07 -04:00
Brad King
8e38985db7 Makefiles: Fix dependency extraction with CUDA < 10.2 and host compiler
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
2021-04-07 10:54:27 -04:00
Brad King
f8af94a212 Merge topic 'binutils-var-private' into release-3.20
4d786dfcfa BinUtils: Avoid clobbering a variable named without a private prefix

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5986
2021-04-07 10:08:08 -04:00
Brad King
196376a33e Merge topic 'ios-rpath-linker-flag' into release-3.20
4aed96e230 Apple: Set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG on non-macOS too

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5980
2021-04-07 10:06:55 -04:00
Brad King
4d786dfcfa BinUtils: Avoid clobbering a variable named without a private prefix
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
2021-04-07 08:43:45 -04:00
Brad King
9780079ba6 Merge branch 'release-3.19' into release-3.20 2021-04-06 14:07:31 -04:00
Brad King
c9b27dace7 CMake 3.19.8 v3.19.8 2021-04-06 13:21:53 -04:00
Ben Boeckel
3fd2cffb4d ci: limit builds by machine load
To avoid starving test jobs, the build jobs should also back off if
there is a lot of machine load.
2021-04-06 11:16:09 -04:00
Ben Boeckel
6317f92120 ci: pay attention to the machine load when running tests
CMake's test suite is sensitive to machine load and can cause spurious
timeouts. To acknowledge this, prevent CTest from spawning tests into a
busy machine.
2021-04-06 11:16:09 -04:00
Brad King
b4c3e8e8e7 Merge topic 'ci-linux-updates' into release-3.20
c6a45968d6 ci: Enable jq-based tests on Linux builds
8ca8b74a96 ci: add jq and DevIL to Debian and Fedora base images

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !5987
2021-04-06 11:10:46 -04:00
Brad King
c6a45968d6 ci: Enable jq-based tests on Linux builds 2021-04-06 10:49:17 -04:00
Brad King
8ca8b74a96 ci: add jq and DevIL to Debian and Fedora base images 2021-04-06 10:49:16 -04:00