CMake merge requestshttps://gitlab.kitware.com/cmake/cmake/-/merge_requests2021-04-29T09:15:39-04:00https://gitlab.kitware.com/cmake/cmake/-/merge_requests/6052Intel: Fix compiler version detection for 20212021-04-29T09:15:39-04:00Brad KingIntel: Fix compiler version detection for 2021Update Classic compiler version detection for 2021. The value of the `__INTEL_COMPILER` macro changed convention.
Add a special case for ifx 2021.1 to recognize it as IntelLLVM. The ifx beta versions forgot to define `__INTEL_LLVM_COM...Update Classic compiler version detection for 2021. The value of the `__INTEL_COMPILER` macro changed convention.
Add a special case for ifx 2021.1 to recognize it as IntelLLVM. The ifx beta versions forgot to define `__INTEL_LLVM_COMPILER`, and instead define `__INTEL_COMPILER == 201900`. Add a special case.
Fixes: #22120
Backport: release3.20.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6040Ninja Multi-Config: Correctly generate POST_BUILD custom targets2021-04-28T11:59:23-04:00Kyle EdwardsNinja Multi-Config: Correctly generate POST_BUILD custom targetsFixes: #22096
Backport: releaseFixes: #22096
Backport: release3.20.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6037Help: Do not recommend WCDH in cmake-compile-features(7)2021-04-26T11:27:21-04:00Brad KingHelp: Do not recommend WCDH in cmake-compile-features(7)Since !5573, 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...Since !5573, 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.
Backport: release3.20.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6032KWIML: Update to version as of 2021-04-212021-04-22T10:22:31-04:00Brad KingKWIML: Update to version as of 2021-04-21Integrate utils/kwiml!4.
Backport: releaseIntegrate utils/kwiml!4.
Backport: release3.20.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6024Autogen: Restore mocs_compilation in OBJECT libraries2021-04-21T10:42:22-04:00Brad KingAutogen: Restore mocs_compilation in OBJECT librariesSince !5507 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
Backport: releaseSince !5507 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
Backport: release3.20.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6016Help: Document special cases for if(IS_ABSOLUTE)2021-04-20T09:59:02-04:00Craig ScottHelp: 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 ca...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. Since `cmake_path()` was added in CMake 3.20 and this is about clarifying things that are closely related to the new command, I've set this MR to backport to the release branch.
There's a small drive-by fix for `file(TO_NATIVE_PATH)` as well, found while checking for other similar platform-specific behavior of commands that overlap with `cmake_path()` functionality.
Backport: release3.20.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6013gitlab-ci: equally delay all jobs on integration branches2021-04-16T13:24:09-04:00Brad Kinggitlab-ci: equally delay all jobs on integration branchesWhen 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.
Backport: releaseWhen 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.
Backport: release3.20.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6012Add missing 'not' in error messages2021-04-19T09:44:09-04:00mrjoelAdd missing 'not' in error messagesI stumbled across this error message when working some other testing across build areas and happened to notice that the not was missing from the actual message. It's not critical, but at the same time caught my eye.
Fixes: #22072
Back...I stumbled across this error message when working some other testing across build areas and happened to notice that the not was missing from the actual message. It's not critical, but at the same time caught my eye.
Fixes: #22072
Backport: release3.20.2Kyle EdwardsKyle Edwardshttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6011BinUtils: Restore toolchain prefix detection from compiler name 'c++'2021-04-19T09:44:54-04:00Lihua ZhaoBinUtils: Restore toolchain prefix detection from compiler name 'c++'!5606 modified `Modules/CMakeDetermineCXXCompiler.cmake` file with following changes:
```patch
- if (COMPILER_BASENAME MATCHES "^(.+-)(clan)?[gc]\\+\\+(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
+ if (COMPILER_BASENAME MATCHES "^(...!5606 modified `Modules/CMakeDetermineCXXCompiler.cmake` file with following changes:
```patch
- if (COMPILER_BASENAME MATCHES "^(.+-)(clan)?[gc]\\+\\+(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
+ if (COMPILER_BASENAME MATCHES "^(.+-)?(clang\\+\\+|g\\+\\+|clang-cl)(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
```
The old logic accept clang++ g++ c++
The new logic doesn't accept c++
It block our product, c++ should be add:
```cmake
if (COMPILER_BASENAME MATCHES "^(.+-)?(clang\\+\\+|[gc]\\+\\+|clang-cl)(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
```
Fixes: #22069
Backport: release3.20.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6008autogen: fix race in depfile parsing2021-04-16T11:36:01-04:00Kyle Edwardsautogen: fix race in depfile parsingcmReadGccDepfile() 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
Backport: releasecmReadGccDepfile() 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
Backport: release3.20.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6003Help: Add 3.20 release note for error on unknown arguments2021-04-15T11:07:40-04:00Brad KingHelp: Add 3.20 release note for error on unknown argumentsThis was left out of !5553.
Fixes: #22060
Backport: releaseThis was left out of !5553.
Fixes: #22060
Backport: release3.20.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/6000OpenBSD: Fix system feature definitions2021-04-14T11:04:34-04:00Rafael SadowskiOpenBSD: Fix system feature definitionsSince !4477, 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.
Update the defin...Since !4477, 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.
Update the definitions for OpenBSD using patches from the official OpenBSD package (called ports).
Backport: release
Topic-rename: openbsd-defines3.20.2Brad KingBrad King