Commit Graph

52193 Commits

Author SHA1 Message Date
Brad King fe9988add3 Merge topic 'git-config-version-check' into release-3.20
8a9753e427 ExternalProject: Only add git config setting with git 1.7.7 or later

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6145
2021-05-21 10:36:56 -04:00
Craig Scott 8a9753e427 ExternalProject: Only add git config setting with git 1.7.7 or later
1cb65e680d (ExternalProject: Prevent the noisy detached head
messages on checkout, 2021-01-17) unconditionally added the advice.detachedHead
git config setting, but it requires git 1.7.7 or later. Since it isn't fatal to not
have it, just noisier, only add it when it is supported.

Fixes: #22206
2021-05-20 22:39:04 +10:00
Brad King c23e2fa0c5 Merge topic 'nvhpc-ninja-depfile' into release-3.20
364f6af1d7 NVHPC: Support Ninja dependency scanning
521cfc38a3 NVHPC: Support explicit language flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6136
2021-05-19 07:54:41 -04:00
Robert Maynard 364f6af1d7 NVHPC: Support Ninja dependency scanning
Fixes: #22168
2021-05-18 12:56:46 -04:00
Robert Maynard 521cfc38a3 NVHPC: Support explicit language flags 2021-05-18 11:30:01 -04:00
Brad King 3a4bb26953 Merge topic 'sphinx-4' into release-3.20
bb9c69ed70 Utilities/Sphinx: Update man page config for Sphinx 4

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6126
2021-05-14 10:55:16 -04:00
Brad King bb9c69ed70 Utilities/Sphinx: Update man page config for Sphinx 4
Sphinx 4 by default generates `man/#/foo.#`, but older versions generate
`man/foo.#` as our install rules expect.  Update our Sphinx config file
to tell Sphinx 4 to use the old layout.

Fixes: #22192
2021-05-14 10:30:34 -04:00
Brad King 0348b22a0c Merge topic 'cmake_build_and_install_command_error_when_given_bad_arguments' into release-3.20
f78b167a23 cmCommandLineArgument: Provide more information syntax error messages
5aa0dec6b0 cmake: `--build` and `--install` error out when encountering bad flags
928cdb17c5 cmCommandLineArgument: Correctly record parsing failures

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6119
2021-05-14 08:33:28 -04:00
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
Brad King 414704e895 Merge topic 'ninja-fortran-symlink' into release-3.20
3a71534402 Ninja: Restore support for Fortran in a symlinked build tree

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6120
2021-05-13 08:11:25 -04:00
Brad King 3a71534402 Ninja: Restore support for Fortran in a symlinked build tree
Since commit f3eed2c49d (cmGlobalNinjaGenerator: use P1689 dependency
file format for Fortran, 2019-03-12, v3.20.0-rc1~454^2), Fortran stopped
working in a build tree whose path contains a symlink.  The reason is
that the P1689r3 format's `work-directory` field gets populated with the
realpath (via `getcwd`) of the build tree instead of the logical path to
the build tree used for generating relative paths in `build.ninja`.
This causes the `Fortran.dd` file to get absolute (real)paths to `.o`
files, and Ninja does not match them with the relative `.o` file paths
in `build.ninja`.

Fix this by dropping use of the `work-directory` field.  This restores
our prior approach of generating paths in the dyndep file using the same
forms of paths received from the buildsystem generator.  The P1689r3
paper's format may need to be revised to account for this.

Fixes: #21683
2021-05-12 10:15:43 -04:00
Robert Maynard 928cdb17c5 cmCommandLineArgument: Correctly record parsing failures 2021-05-12 09:43:33 -04:00
Brad King 13f813ebe4 Merge topic 'cpp23_gcc' into release-3.20
9fbbebe3d0 GNU: C++23 support
c9a1e06a18 GNU: Final C++20 flags
05f8c8178d GNU: C++17 default version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6108
2021-05-11 09:19:11 -04:00
Raul Tambre 9fbbebe3d0 GNU: C++23 support
Added in GCC commit 78739c2df788ee5c868d998a6333d453317d8711, released in 11.1.
No lettered variant beforehand this time around.

Implements #22139.
2021-05-10 10:19:13 -04:00
Raul Tambre c9a1e06a18 GNU: Final C++20 flags
Added in GCC commit fb26050409473f5be54465beca114b7e48de43aa, released in 11.1.
2021-05-10 10:19:13 -04:00
Raul Tambre 05f8c8178d GNU: C++17 default version
Changed in GCC commit 0801f419440c14f6772b28f763ad7d40f7f7a580, released in 11.1.
2021-05-10 10:19:13 -04:00
Brad King b2f1345aaf Merge topic 'FindBoost-1.76' into release-3.20
79be37b94e FindBoost: Add support for Boost 1.76

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6100
2021-05-10 10:06:52 -04:00
Brad King 8ac314b381 Merge topic 'ep-update-git-hash-missing' into release-3.20
5e941a545b ExternalProject: Ensure git fetch if updating to hash we don't have yet

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !6109
2021-05-10 10:05:11 -04:00
Craig Scott 5e941a545b ExternalProject: Ensure git fetch if updating to hash we don't have yet
In ac6a4d4884 (ExternalProject: Improve robustness of update step,
2020-10-17), the method used to check whether we already have a
commit or not was changed from using git rev-list to git rev-parse.
The new logic assumed rev-parse would output nothing if given a commit
hash it didn't know about, but it simply prints the hash again without
raising an error in this scenario. Amend that logic by adding ^{commit} to
the ref to ensure we do get an error if that ref is not currently known.

Fixes: #22166
2021-05-09 12:33:16 +10:00
Brad King fdbb5a599f Merge topic 'improve_cuda_toolkit_extraction_regex' into release-3.20
5e931c5a97 CUDA: improve regex for CUDA Toolkit root from nvcc verbose output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6094
2021-05-07 09:12:08 -04:00
Brad King 79be37b94e FindBoost: Add support for Boost 1.76
Update the list of known versions.

Run the command

    cmake -DBOOST_DIR=/path/to/boost_1_76_0 \
      -P Utilities/Scripts/BoostScanDeps.cmake

to extract dependencies from the 1.76.0 source tree.
They are the same as 1.75's dependencies, so just update
the version check for warning about newer versions.

Fixes: #22167
2021-05-07 08:57:43 -04:00
Robert Maynard 5e931c5a97 CUDA: improve regex for CUDA Toolkit root from nvcc verbose output
The original regular expression was greedy and would match any
environment variable ending with `TOP` (like `DESKTOP`). This is an
issue on windows where `nvcc -v` would output all environment variables
before the compiler's verbose output.

To resolve this issue we use a tighter match algorithm that looks
for `#$ TOP=` instead of `TOP=`.

Fixes: #22158
2021-05-06 12:08:24 -04:00
Brad King f062f8b1fd Merge topic 'objc-osx-architectures' into release-3.20
5972094708 ObjectiveC: Respect OSX_ARCHITECTURES for OBJC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6090
2021-05-06 10:10:18 -04:00
Brad King 5972094708 ObjectiveC: Respect OSX_ARCHITECTURES for OBJC
Fix a typo from commit 940fc62962 (macOS: Respect OSX_ARCHITECTURES for
ASM, 2020-08-21, v3.19.0-rc1~270^2).

Fixes: #22152
2021-05-05 10:45:01 -04:00
Brad King 084767a9ce Merge topic 'binutils-var-private' into release-3.20
c33fb2e664 BinUtils: Use more-private temporary variable names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6085
2021-05-05 10:06:02 -04:00
Brad King c33fb2e664 BinUtils: Use more-private temporary variable names
Since commit 4d786dfcfa (BinUtils: Avoid clobbering a variable named
without a private prefix, 2021-04-06, v3.20.1~4^2) we use variables
named `_tool` and `_name`, but these may still be common enough to
affect project code.  Use `_CMAKE_TOOL` and `_CMAKE_TOOL_NAME` instead,
and unset them when finished.

Fixes: #22140
2021-05-04 12:44:14 -04:00
Brad King 38868b47f7 Merge topic 'doc-preset-schema-relative' into release-3.20
75dadc4558 Help: Use relative path for IDE Integration guide link to preset schema

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !6083
2021-05-04 11:15:20 -04:00
Brad King 75dadc4558 Help: Use relative path for IDE Integration guide link to preset schema
This allows the integration guide to build as part of a larger set of
documentation.
2021-05-03 15:36:45 -04:00
Brad King b6a5572d8a Merge topic 'ninja-multi-long-command-line-config' into release-3.20
ad08f93ee4 Ninja Multi-Config: Split long command lines by config

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6067
2021-05-03 10:53:49 -04:00
Kyle Edwards ad08f93ee4 Ninja Multi-Config: Split long command lines by config
Fixes: #22123
2021-04-30 14:46:21 -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