summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* CMake 3.22.3v3.22.3Brad King2022-03-042-1/+10
|
* Merge branch 'release-3.21' into release-3.22Brad King2022-03-041-3/+3
|\
| * CMake 3.21.6v3.21.6Brad King2022-03-042-4/+4
| |
* | Merge branch 'while-bug-compatibility' into release-3.22Brad King2022-03-037-27/+20
|\ \ | | | | | | | | | Merge-request: !7041
| * | while: Restore tolerance of condition errorAlex Turbov2022-03-035-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 880ca66b51 (Fix: `while()` can silently ignore incorrect condition, 2021-08-09, v3.22.0-rc1~238^2~4) we correctly reject the code set(paren "(") while(${paren}) endwhile() However, rejecting it breaks compatibility with projects that used such code accidentally. In CMake 3.21 and below, any error in the condition was ignored because the `false` result exited the loop first. Restore tolerance of the error for now. A policy will be needed to make it an error later. Note that the same condition with `if` was always correctly rejected. Fixes: #22524 Issue: #23296 Co-authored-by: Brad King <brad.king@kitware.com>
| * | Tests: Simplify RunCMake.{if,while} unbalanced parenthesis casesBrad King2022-03-034-16/+11
| | |
* | | Merge branch 'release-3.21' into release-3.22Brad King2022-03-030-0/+0
|\ \ \ | | |/ | |/|
| * | Merge branch 'binutils-llvm-ar-clang-macos' into release-3.21Brad King2022-03-031-1/+4
| |\ \ | | | | | | | | | | | | Merge-request: !7039
* | \ \ Merge branch 'binutils-llvm-ar-clang-macos' into release-3.22Brad King2022-03-031-1/+4
|\ \ \ \ | | |/ / | |/| / | |_|/ |/| | Merge-request: !7039
| * | BinUtils: Avoid llvm-ar on Apple platformsBrad King2022-03-031-1/+4
| |/ | | | | | | | | | | | | | | | | | | Since commit cf82300a63 (BinUtils: Clarify search logic and make it more consistent, 2021-05-27, v3.21.0-rc1~119^2~2) we correctly prefer the more-specific name `llvm-ar` over `ar` when using Clang. However, on Apple platforms, `llvm-ar` does not generate a symbol table that the Apple linker accepts. Fall back to `ar` on Apple platforms. Fixes: #23269
* | Merge branch 'release-3.21' into release-3.22Brad King2022-02-280-0/+0
|\ \ | |/
| * Merge branch 'FindThreads-revert-libc-pthread-flag' into release-3.21Brad King2022-02-281-11/+8
| |\ | | | | | | | | | Merge-request: !7025
* | \ Merge branch 'FindThreads-revert-libc-pthread-flag' into release-3.22Brad King2022-02-281-11/+8
|\ \ \ | | |/ | |/| | | | Merge-request: !7025
| * | FindThreads: Revert "Honor THREADS_PREFER_PTHREAD_FLAG when ... in libc"Brad King2022-02-281-11/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit 5efb6fb516 (FindThreads: Honor THREADS_PREFER_PTHREAD_FLAG when pthread is found in libc, 2021-11-03, v3.21.5~4^2). The check for the `-pthread` flag can pass on compilers like XL, that interprets it as `-p -t hread` and returns zero. Prior to that commit, we did not use the check in the `CMAKE_HAVE_LIBC_PTHREAD` code path. Now we do, it succeeds, and we incorrectly add the `-pthread` flag for XL. This change was backported to the 3.21 and 3.22 release series long after they initially came out. Since there may be more cases where we now add `-pthread` incorrectly, it is simplest to revert the change in all release series pending further investigation. Fixes: #23270
* | | Merge branch 'test-qt-disable' into release-3.22Brad King2022-02-171-4/+8
|\ \ \ | | | | | | | | | | | | Merge-request: !6998
| * | | Tests: Add missing guards on Qt4 and Qt5 testsBrad King2022-02-171-4/+8
|/ / / | | | | | | | | | | | | | | | | | | | | | Add missing `CMake_TEST_Qt{4,5}` conditions on Qt4 an Qt5 tests. Configuring CMake with `-DCMake_TEST_Qt5=OFF` should prevent any attempt to search for Qt5. Fixes: #23239
* | | Merge branch 'FindGLUT-link-dirs' into release-3.22Brad King2022-02-151-0/+3
|\ \ \ | | | | | | | | | | | | Merge-request: !6985
| * | | FindGLUT: Use link directories for libs from pkg-configSilvio Traversaro2022-02-151-0/+3
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | Since commit f90d15458a (FindGLUT: Use pkg-config to find flags if available, 2021-06-11, v3.22.0-rc1~469^2), the `GLUT_LIBRARIES` may come from `pkg-config`, in which case they may be `-l` flags instead of absolute paths. Propagate `GLUT_LIBRARY_DIRS` to GLUT::GLUT too. Fixes: #23229
* | | Merge branch 'FindMatlab-mcr911' into release-3.22Brad King2022-02-141-1/+1
|\ \ \ | | | | | | | | | | | | Merge-request: !6976
| * | | FindMatlab: Fix version detection for MCR >= 9.10Tom M2022-02-141-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | Recent MCR versions have the following `VersionInfo.xml`: <version>9.11.0.1837725</version> Fix parsing of multiple digits in the version components so that we do not mistake this for version `9.1`.
* | | Merge branch 'restore-target-export-includes' into release-3.22Brad King2022-02-1411-13/+71
|\ \ \ | | | | | | | | | | | | Merge-request: !6969
| * | | install(TARGETS): Restore per-export INCLUDES DESTINATIONEugene Shalygin2022-02-0911-13/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 55e4753bbb (Refactor cmTargetExport removing InterfaceIncludeDirecories, 2021-07-20, v3.22.0-rc1~337^2~1) the storage of `INCLUDES DESTINATION` was moved into each target. However, a target may be installed in multiple exports, and their `INCLUDES DESTINATION` should not be mixed. Convert the IncludeDirectoriesEntries vector to a map and modify access function to store the directories lists with respect to cmExportTarget object. This fixes error when the same target is exported more than once via different exports and each for consequent export its include directories list grows. Add a test for this case. Fixes: #23183
* | | | Merge branch 'release-3.21' into release-3.22Brad King2022-02-090-0/+0
|\ \ \ \ | | |_|/ | |/| |
| * | | Merge branch 'backport-IntelLLVM-depfile-flags' into release-3.21Brad King2022-02-093-3/+3
| |\ \ \ | | | | | | | | | | | | | | | Merge-request: !6964
| * \ \ \ Merge branch 'doc-MSVC_TOOLSET_VERSION-v143' into release-3.21Brad King2022-02-091-0/+1
| |\ \ \ \ | | |_|_|/ | |/| | | | | | | | Merge-request: !6966
* | | | | Merge branch 'backport-IntelLLVM-depfile-flags' into release-3.22Brad King2022-02-093-3/+3
|\ \ \ \ \ | | |_|/ / | |/| | | | | | | | Merge-request: !6964
| * | | | IntelLLVM: Add dependencies on system header files on WindowsWilliam R. Dieter2022-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit a90d2a9eed (IntelLLVM: Add support for Intel LLVM-based compilers, 2020-11-02, v3.20.0-rc1~89^2~20) the IntelLLVM depfile generation flags were taken from `Platform/Windows-Intel-C`. Those flags were added by commit a624a3e1b3 (Ninja: Use deps=gcc for Intel Compiler on Windows, 2019-01-30, v3.14.0-rc1~30^2), which forgot to account for commit 6d74e7870b (Ninja: Add dependencies on system-provided header files, 2016-03-15, v3.6.0-rc1~265^2). The `-QMD` option generates Makefile dependencies. The `-QMMD` option generates Makefile dependencies, but excludes system header files. Part of the BuildDepends test includes a header, cmake_pch.hxx, that includes a second header, zot_pch.hxx. The test builds a pch file for cmake_pch.hxx, touches zot_pch.hxx, then verifes that cmake_pch.hxx.pch is regenerated based on the dependencies. The cmake_pch.hxx contains `#pragma system_header` before it includes zot_pch.hxx. `#pragma system_header` indicates that the portion of the file following the pragma is to be treated as a system header. When `-QMMD` is used to generate dependencies, the `#include` of zot_pch.hxx is ignored because it `-QMMD` says to ignore system headers. Using `-QMD` instead uses all headers when generating dependencies and causes this test to pass. The Clang configuration in Platform/Windows-Clang.cmake also uses the `-MD` option for generating pre-compiled headers, instead of `-MMD`. Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
| * | | | Intel: Add dependencies on system header files on WindowsBrad King2022-02-092-2/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | In commit a624a3e1b3 (Ninja: Use deps=gcc for Intel Compiler on Windows, 2019-01-30, v3.14.0-rc1~30^2) we forgot to account for commit 6d74e7870b (Ninja: Add dependencies on system-provided header files, 2016-03-15, v3.6.0-rc1~265^2).
* | | | Merge branch 'doc-MSVC_TOOLSET_VERSION-v143' into release-3.22Brad King2022-02-091-0/+1
|\ \ \ \ | | |/ / | |/| / | |_|/ |/| | Merge-request: !6966
| * | Help: Add MSVC_TOOLSET_VERSION value for v143 toolsetHeiko Thiel2022-02-091-0/+1
| |/ | | | | | | | | | | This was accidentally left out of commit f01ea7e391 (MSVC: Fix MSVC_TOOLSET_VERSION for VS 2022 v143 toolset, 2019-04-03, v3.21.3~10^2~1).
* | Merge branch 'FindGSL-version-regex' into release-3.22Brad King2022-02-081-1/+1
|\ \ | | | | | | | | | Merge-request: !6960
| * | FindGSL: Improve version extraction regexمهدي شينون (Mehdi Chinoune)2022-02-081-1/+1
|/ / | | | | | | | | | | | | Backport commit 58f2708b90 (FindGSL: Improve version extraction regex, 2021-12-17) to the CMake 3.22 branch. Fixes: #23017
* | Merge branch 'default-extensions' into release-3.22Brad King2022-02-033-7/+4
|\ \ | | | | | | | | | Merge-request: !6949
| * | CompilerId: Fix default extensions check for Clang targeting MSVC ABIBrad King2022-02-033-7/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | | | In commit fc3a1cbdd8 (CompilerID: Compiler extensions default detection, 2021-05-29, v3.22.0-rc1~52^2~2), extensions were assumed to be `OFF` for Clang targeting the MSVC ABI. However, the `clang` and `clang++` tools both seem to have extensions enabled by default even when targeting the MSVC ABI. This can be observed with the `RunCMake.CompileFeatures` test. It fails with the GNU-like `clang/clang++` front-end, but removing the above special case makes it pass. The test passes either way with the MSVC-like `clang-cl` front-end.
* | Merge branch 'release-3.21' into release-3.22Brad King2022-02-011-0/+7
|\ \ | |/
| * CMake 3.21.5v3.21.5Brad King2022-02-012-1/+8
| |
* | Merge branch 'ci-assertions' into release-3.22Brad King2022-02-012-0/+5
|\ \ | | | | | | | | | Merge-request: !6927
| * | gitlab-ci: enable assertions on fedora34-ninja jobsBrad King2022-01-312-0/+5
| | | | | | | | | | | | | | | | | | | | | We should have at least one CI job in merge request pipelines that builds CMake with assertions enabled. We avoid using the `Debug` configuration in order to keep CI artifacts small, so instead use the `Release` configuration without `-DNDEBUG`.
* | | Merge branch 'release-3.21' into release-3.22Brad King2022-02-010-0/+0
|\ \ \ | | |/ | |/|
| * | Merge branch 'release-3.20' into release-3.21Brad King2022-01-310-0/+0
| |\ \
| | * \ Merge branch 'help-try-compile-result-var' into release-3.20Brad King2022-01-312-13/+0
| | |\ \ | | | | | | | | | | | | | | | Merge-request: !6923
| * | \ \ Merge branch 'help-try-compile-result-var' into release-3.21Brad King2022-01-312-13/+0
| |\ \ \ \ | | | |/ / | | |/| | | | | | | Merge-request: !6923
* | | | | Merge topic 'help-try-compile-result-var' into release-3.22Brad King2022-02-012-13/+0
|\ \ \ \ \ | | |/ / / | |/| | / | |_|_|/ |/| | | | | | | | | | | 34d263270e Help: Drop incorrect versionadded for try_compile result variable Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6923
| * | | Help: Drop incorrect versionadded for try_compile result variablefriendlyanon2022-01-312-13/+0
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit c705279bae (Help: Add `.. versionadded` directives to commands documentation, 2020-11-08, v3.20.0-rc1~508^2) we accidentally added ``versionadded`` markup suggesting that the first argument to `try_compile` was fixed as `RESULT_VAR` prior to CMake 3.14. This was probably due to misinterpreting the change from commit 7975edeac5 (Help: User-provided variable names for try_* commands, 2019-02-24, v3.14.0-rc3~16^2~3). The result variable has never been fixed. Drop the incorrect markup.
* | | Merge topic 'iar_cmp0057' into release-3.22Brad King2022-01-311-3/+6
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | cc4da8d13a IAR/CXX: Fix compatibility with CMP0057 OLD Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6921
| * | | IAR/CXX: Fix compatibility with CMP0057 OLDRaul Tambre2022-01-291-3/+6
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit a9073db7 (IAR: update language specification detection, 2021-09-23) added usage of the if() IN_LIST operation and forgot to account for it not being available in CMP0057 OLD mode. Push and temporarily enable the policy. Also avoid the unnecessary temporary variable for the list. Fixes #23147.
* | | Merge branch 'release-3.21' into release-3.22Brad King2022-01-280-0/+0
|\ \ \ | | |/ | |/|
| * | Merge branch 'message-flush' into release-3.21Brad King2022-01-271-2/+2
| |\ \ | | | | | | | | | | | | Merge-request: !6913
* | \ \ Merge topic 'message-flush' into release-3.22Brad King2022-01-281-2/+2
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | 634587e322 message: Restore explicit flushing of messages on stderr Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6913
| * | | message: Restore explicit flushing of messages on stderrBrad King2022-01-271-2/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the `cmake` command-line tool, the `message()` command with no message mode argument prints the message stderr using the C++ `cerr` stream. Since commit 0a0a0f8a74 (cmMessenger: Color messages to terminal by type, 2021-05-18, v3.21.0-rc1~146^2) and an update by commit c7a8c9c811 (cmMessenger: Revert to non-color messages on Windows, 2021-07-20, v3.21.1~15^2), we print the newline at the end of the message using just `\n`. We've now observed some cases of output on stdout and stderr getting jumbled when the two go to the same file descriptor. Previously the newline was printed with `endl`, which implicitly flushes. Flush explicitly to restore that behavior. Fixes: #23155