summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* CMake 3.31.3v3.31.3Brad King8 days1-1/+1
|
* Merge topic 'iface-public-modules' into release-3.31Brad King2024-12-121-0/+12
|\ | | | | | | | | | | | | | | | | 854eba0c53 target_sources: Improve error message for CXX_MODULES on INTERFACE libraries cd179e7560 Tests/RunCMake/CXXModules: Rename FileSetModules cases to be more specific Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !10090
| * target_sources: Improve error message for CXX_MODULES on INTERFACE librariesBrad King2024-12-111-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We support non-compiled `SOURCES` on `INTERFACE` libraries, and also support `CXX_MODULES` on *imported* `INTERFACE` libraries (via synthetic targets that compile module interface units). However, we do not support `CXX_MODULES` on non-imported `INTERFACE` libraries because there is no place to hold module interface unit's object files for their module initializers. Previously this was not explicitly rejected, and so was diagnosed only by "CMake Internal Error" messages due to assumption violations in the implementation. Fixes: #26524 Co-authored-by: Ben Boeckel <ben.boeckel@kitware.com>
| * CMake 3.30.6v3.30.6Brad King2024-11-211-1/+1
| |
| * Merge topic 'execute_process-OUTPUT_FILE-cloexec' into release-3.30Brad King2024-11-201-3/+23
| |\ | | | | | | | | | | | | | | | | | | 60af429c5d execute_process: Restore CLOEXEC on OUTPUT_FILE and ERROR_FILE descriptors Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !10014
| * | CMake 3.30.5v3.30.5Brad King2024-10-081-1/+1
| | |
* | | Merge topic 'install-DESTINATION-regression' into release-3.31Brad King2024-12-121-3/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 92e63421cb install: Restore treatment of DESTINATION as a single-valued keyword Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !10088
| * | | install: Restore treatment of DESTINATION as a single-valued keywordCraig Scott2024-12-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `install(RUNTIME_DEPENDENCY_SET)` form processes its arguments in a slightly different way to other forms of the command. It handles the `POST_...`, `PRE_...` and `DIRECTORIES` keywords separately. These keywords are not visible to the first layer of keyword processing, so they don't terminate multi-value keyword value parsing. Before commit 6a1fac1450 (install: Normalize DESTINATION paths, 2024-09-18, v3.31.0-rc1~73^2), the `DESTINATION` keyword was handled as a simple string value. That commit changed it to use a function so it could process the value before storing it, but the function returned the wrong value. This meant it was treated as a multi-value keyword instead of a single-value keyword. Fixes: #26512
* | | | Merge topic 'codegen-make' into release-3.31Brad King2024-12-112-26/+22
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 25b43a5b7f Makefile: Enable progress messages for codegen target af2b340a2e Makefile: Fix per-directory codegen target b7e6c418e3 cmLocalUnixMakefileGenerator3: Simplify progress command generation Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !10085
| * | | | Makefile: Enable progress messages for codegen targetBrad King2024-12-102-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | This was left out of commit 197cb419d1 (add_custom_command: Add CODEGEN support, 2024-05-27, v3.31.0-rc1~394^2).
| * | | | Makefile: Fix per-directory codegen targetBrad King2024-12-101-0/+2
| | | | | | | | | | | | | | | | | | | | Issue: #26517
| * | | | cmLocalUnixMakefileGenerator3: Simplify progress command generationBrad King2024-12-101-24/+14
| | | | |
* | | | | Ninja: Add missing top-level codegen dependencies on per-directory codegenBrad King2024-12-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 197cb419d1 (add_custom_command: Add CODEGEN support, 2024-05-27, v3.31.0-rc1~394^2) we accidentally left out the global `codegen` target's dependencies on the per-directory `codegen` targets. Add them for parity with the `all` target. Fixes: #26517
* | | | | cmGlobalNinjaGenerator: Simplify per-directory configuration list lookupBrad King2024-12-101-2/+1
| | | | |
* | | | | cmGlobalNinjaGenerator: Clarify order of codegen build statement logicBrad King2024-12-101-3/+3
| | | | | | | | | | | | | | | | | | | | Make it more consistent with the equivalent logic for "all".
* | | | | cmGlobalNinjaGenerator: Fix local variable name for codegen targetBrad King2024-12-101-8/+11
| | | | |
* | | | | cmGlobalNinjaGenerator: Remove unnecessary local variableBrad King2024-12-101-6/+2
| | | | |
* | | | | cmGlobalNinjaGenerator: Remove unused local variableBrad King2024-12-101-3/+0
|/ / / /
* | | | VS: Restore support for mixing C++23 and C in one target with clang-clBrad King2024-12-091-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 474eafe28c (clang-cl: Add support for C++23, 2024-09-13, v3.31.0-rc1~97^2) we use a Clang-specific flag to enable C++23 since `clang-cl` has no `-std:c++23` flag, and `-std:c++latest` may enable an even newer version of C++. However, in `.vcxproj` files there is no way to express a target-wide `-clang:-std=c++23` flag for only C++ sources when the target also has C sources. Add a special case to map back to `-std:c++latest` for targets with C++23 and C together. Fixes: #26508
* | | | VS: Factor out check for mixed C and C++ targetBrad King2024-12-091-15/+19
|/ / /
* | | CMake 3.31.2v3.31.2Brad King2024-12-051-1/+1
| | |
* | | Merge topic 'autogen-revert-ui-rebuild' into release-3.31Brad King2024-12-051-19/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | debc4d3906 Autogen: Revert adding ui files to byproducts of the timestamp target Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !10056
| * | | Autogen: Revert adding ui files to byproducts of the timestamp targetOrkun Tokdemir2024-12-041-19/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When `ui_` include directives have different paths than `CMakeLists.txt`, the dependency graph is not generated correctly. This is the root cause of #16776. However, when #26135 was fixed by commit 5363bebc1e (Autogen: Fix compilation of unchanged source files, 2024-07-16, v3.31.0-rc1~328^2), it made #16776 worse: the build is always dirty. Revert the fix for now. Fixes: #26485 Issue: #26135 Issue: #25436
* | | | LINK_OPTIONS: Fix crash on empty LINKER: prefixBrad King2024-12-041-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit e3895f4a8b (Linking: Preserve nested LINKER: prefixes as written, 2024-09-17, v3.31.0-rc1~60^2) we may increment an iterator past the end. Revise logic to avoid that. Fixes: #26499
* | | | fileapi: Do not expose flags for linker-generated dependenciesBrad King2024-12-032-2/+3
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 375e6fdbbe (Link step: use linker dependency linker file, 2023-04-19, v3.27.0-rc1~126^2) we added the `-Wl,--dependency-file,...` flag for the Ninja generator in a code path shared with the file-api. This flag is a build system implementation detail and should not be exposed to file-api clients. Move it to a Ninja-specific code path. Fixes: #26498
* | | Autogen: Fix Ninja Multi-Config dependency graph regressionOrkun Tokdemir2024-11-281-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 5363bebc1e (Autogen: Fix compilation of unchanged source files, 2024-07-16, v3.31.0-rc1~328^2) we relied on Ninja Multi-Config dependency graph optimizations from commit 7c39dabdbc (Autogen: AUTO*_EXECUTABLE: add support for per-config values, 2023-10-18, v3.29.0-rc1~105^2~1). However, those graph optimizations are conditional on versions of Qt that enable [`AUTOGEN_BETTER_GRAPH_MULTI_CONFIG`](https://codereview.qt-project.org/c/qt/qtbase/+/513648). `UseBetterGraph` should be checked to add ui files to `timestampByproducts`. Fixes: #26475
* | | Autogen: Restore <target_name>_autogen_timestamp_deps targetOrkun Tokdemir2024-11-281-11/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit 91b2ce4a69 (Autogen: Remove ..._autogen_timestamp_deps target, 2024-06-27, v3.31.0-rc1~391^2). The `_autogen_timestamp_deps` target is needed for pre-`AUTOGEN_BETTER_GRAPH_MULTI_CONFIG` behavior. Issue: #26080 Issue: #26475
* | | Merge topic 'aix-archive-shared-libraries-export' into release-3.31Brad King2024-11-233-5/+18
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | cd6fb63093 AIX: Propagate AIX_SHARED_LIBRARY_ARCHIVE through exports Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !10027
| * | | AIX: Propagate AIX_SHARED_LIBRARY_ARCHIVE through exportsBrad King2024-11-223-5/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach `export()` and `install(EXPORT)` to record this setting on the imported targets they generate. Make this property's non-presence authoritative on imported targets since they represent what was built elsewhere.
* | | | AIX: Disallow TARGET_SONAME_* genex for AIX_SHARED_LIBRARY_ARCHIVE targetsBrad King2024-11-211-0/+12
|/ / / | | | | | | | | | | | | AIX shared library archives have no filesystem artifact named with their SONAME because it is in an archive.
* | | CMake 3.31.1v3.31.1Brad King2024-11-211-1/+1
| | |
* | | Merge topic 'execute_process-OUTPUT_FILE-cloexec' into release-3.31Brad King2024-11-211-3/+23
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | 60af429c5d execute_process: Restore CLOEXEC on OUTPUT_FILE and ERROR_FILE descriptors Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: Bertrand Bellenot <bertrand.bellenot@cern.ch> Merge-request: !10014
| * | execute_process: Restore CLOEXEC on OUTPUT_FILE and ERROR_FILE descriptorsBrad King2024-11-201-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 5420639a8d (cmExecuteProcessCommand: Replace cmsysProcess with cmUVProcessChain, 2023-06-01, v3.28.0-rc1~138^2~8), the descriptors for the `OUTPUT_FILE` and `ERROR_FILE` leak to child processes. With `ExternalProject` + `INSTALL_COMMAND` + `LOG_INSTALL`, the logging wrapper script leaks the log files' descriptors to the native build tool. If they happen to match the `make` job server's pipe fds, e.g., with GNU `make` <= 4.3, then the build fails with an error like: gmake[4]: *** read jobs pipe: Bad file descriptor. Stop. Fixes: #26398
| * | CMake 3.29.8v3.29.8Brad King2024-08-291-1/+1
| | |
| * | CMake 3.29.7v3.29.7Brad King2024-07-161-1/+1
| | |
| * | Merge topic 'vs-17.11' into release-3.29Brad King2024-06-241-4/+2
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | dfe0f3f358 VS: Fix '-T version=14.4x' under VS 17.1x Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9622
| * \ \ Merge topic 'ctest-windows-std-handles' into release-3.29Brad King2024-06-243-34/+0
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e4d0169107 ctest: Fix spurious build failures with CTEST_USE_LAUNCHERS on Windows Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9598
* | | | | cmExperimental: Make CPS-export experimental notice more consistentMatthew Woehlke2024-11-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is an inadvertent inconsistency in the notice for the CPS export experimental feature as compared to other experimental feature notices. Change it to be consistent.
* | | | | LLD linker: avoid regression on archive libraries deduplicationMarc Chevrier2024-11-181-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to a bug on LLD linker for ELF binaries, deduplication should occur only if CMP0156 and CMP0179 are NEW. Fixes: #26447
* | | | | CMP0175: Do not reject USES_TERMINAL for add_custom_command(TARGET)Craig Scott2024-11-151-0/+1
| | | | | | | | | | | | | | | | | | | | Fixes: #26449
* | | | | Clarify advice given by compatibility deprecation message for CMake < 3.10Brad King2024-11-141-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 84db8506ff (Deprecate compatibility with CMake versions older than 3.10, 2024-10-03, v3.31.0-rc1~23^2) the `cmake_minimum_required` and `cmake_policy` commands warn if the project does not enable policies as of 3.10 or higher. Clarify the advice given in the warning message about how to update the version specification, particularly without actually requiring a newer minimum version of CMake.
* | | | | CMake 3.31.0v3.31.0Brad King2024-11-061-1/+1
| | | | |
* | | | | CMake 3.31.0-rc3v3.31.0-rc3Brad King2024-10-291-1/+1
| | | | |
* | | | | cmake_parse_arguments: Restore capture of value after repeated keywordCraig Scott2024-10-281-25/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a single-value keyword is repeated, and the first instance is missing a value, it prevents the value from the second instance from being stored in a variable. This was a regression introduced by commit ceeea4e511 (cmake_parse_arguments: Set variable if empty string given after keyword, 2024-08-18). That change also didn't create a variable if the keyword was given but without a value. The purpose of the change was to always define a variable if a keyword was given. Lastly, that change didn't protect the CMP0174 logic to make it only apply to the PARSE_ARGV form. The first two of the above problems are fixed here by tracking the keywords given instead of checking which keywords were missing values. The third problem is also fixed here, being tightly coupled to the same logic as the first two problems. Fixes: #26397
* | | | | Merge topic 'link-strategy' into release-3.31Brad King2024-10-283-9/+9
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 39fd396421 LINK_LIBRARIES_STRATEGY: Rename strategies to clarify expectations Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Craig Scott <craig.scott@crascit.com> Merge-request: !9949
| * | | | | LINK_LIBRARIES_STRATEGY: Rename strategies to clarify expectationsBrad King2024-10-253-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 7abd3137b7 (Linking: Optionally reorder direct dependencies from LINK_LIBRARIES, 2024-09-19, v3.31.0-rc1~53^2) the strategy name `PRESERVE_ORDER` has led users to expect that it strictly preserves order. While the part of the link line generation logic controlled by `LINK_LIBRARIES_STRATEGY` does preserve order, it is not the last step. Toolchain-specific de-duplication can cause the order to change on the actual link line generated in the build system. Rename the strategies: * `PRESERVE_ORDER` => `REORDER_MINIMALLY` * `REORDER` => `REORDER_FREELY` The new names make it clear that reordering is always possible, just to varying degrees. Update the `LINK_LIBRARIES_STRATEGY` documentation to clarify that the strategies do not directly control the final link line. Fixes: #26400 Issue: #26271
* | | | | | cmStringAlgorithms: Fix core.NonNullParamChecker diagnostic in cmAlphaNumBrad King2024-10-261-1/+1
| | | | | |
* | | | | | KWSys: SystemInformation: Add missing EOF check when reading /proc/cpuinfoBrad King2024-10-261-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport KWSys upstream commit `6e847d08b` (SystemInformation: Add missing EOF check when reading /proc/cpuinfo, 2024-10-23) to the CMake 3.31 release branch.
* | | | | | codespell: Fix typosBrad King2024-10-253-9/+9
|/ / / / /
* | | | | Merge topic 'windows-kernel-mode-driver' into release-3.31Brad King2024-10-251-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 54bbd00448 WindowsKernelModeDriver: Switch to appending to variables Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9941