summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'release-3.27' into release-3.28Brad King2023-11-272-4/+14
|\
| * Merge branch 'release-3.26' into release-3.27Brad King2023-11-272-4/+14
| |\
| | * CMake 3.26.6v3.26.6Brad King2023-11-273-5/+15
| | |
* | | Merge branch 'release-3.27' into release-3.28Brad King2023-11-270-0/+0
|\ \ \ | |/ /
| * | Merge branch 'revert-exact-collation-depends-3.27' into release-3.27Brad King2023-11-2718-9/+143
| |\ \ | | | | | | | | | | | | Merge-request: !8996
* | \ \ Merge topic 'fortran-objects-as-sources-fix' into release-3.28Brad King2023-11-2739-78/+419
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | beb1393f8f Merge branch 'revert-exact-collation-depends-3.27' into fortran-objects-as-sources-fix a033dce326 Makefiles: provide, but do not consume, "forward linked" target dirs 7cd0adab1b cmCommonTargetGenerator: use modules from linked object-referenced targets 1175f1c874 LinkItem: track `cmSourceFile` instances for external objects d2fa56772f Ninja: support "forwarding" modules from other targets ec1e589bec Ninja: Revert exact collation dependencies for 3.27 06df59b930 cmCommonTargetGenerator: return forward linked target dirs too f8729ab366 cmLocalUnixMakefileGenerator3: handle object-referencing Fortran modules ... Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8989
| * \ \ \ Merge branch 'revert-exact-collation-depends-3.27' into ↵Ben Boeckel2023-11-230-0/+0
| |\ \ \ \ | | | |/ / | | |/| | | | | | | | | | | | | | | | | | | | | | fortran-objects-as-sources-fix * revert-exact-collation-depends-3.27: Fortran: Revert exact collation dependencies for 3.27
| | * | | Ninja: Revert exact collation dependencies for 3.27Ben Boeckel2023-11-211-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit b6a5382217 (Ninja: depend on language module information files directly, 2023-02-10, v3.27.0-rc1~502^2) from !8197. This reverts the "exact dependencies" for collation inputs and returns to "get all targets" and target-ordering. Use of exact dependencies caused a parade of use cases that had not been tested previously to be found and need fixing over the 3.27 release series. To stop the flow on 3.27, revert to the 3.26 strategy. We will continue in 3.28. Note that this is a restoration of 3.26 semantics where incremental rebuilds may be subtly incorrect in the presence of stale `<LANG>Modules.json` files. However, since C++ support is experimental and Fortran has always had this problem as of 3.27, it is not considered a regression. See: #25112 See: #25123 See: #25252 See: #25365 See: #25417 See: #25425
| * | | | Makefiles: provide, but do not consume, "forward linked" target dirsBen Boeckel2023-11-232-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makefiles do not have a per-object sense of where they come from, so forwarding any module information here would end up with incorrect module file path construction by consuming targets. Leave a TODO item in its place.
| * | | | cmCommonTargetGenerator: use modules from linked object-referenced targetsBen Boeckel2023-11-232-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fortran modules provided by objects added as linked items via `$<TARGET_OBJECTS>` should also be considered as "linked targets" for collation purposes. As C++ modules have their own visibility rules through their `FILE_SET` feature, do not expose these for C++ module collation.
| * | | | LinkItem: track `cmSourceFile` instances for external objectsBen Boeckel2023-11-236-13/+30
| | | | | | | | | | | | | | | | | | | | | | | | | The target may be required in order to provide Fortran modules, so track the source file so that the target may be looked up when needed.
| * | | | Ninja: support "forwarding" modules from other targetsBen Boeckel2023-11-239-1/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a target uses objects from another target which provides modules as sources, the modules provided by the referenced target must also be treated as if they were provided by the referencing target. Add the concept of "forwarding" modules so that consumers can use modules created by these sources as well. Note that this is only sensible for Fortran where module usages are implicit as far as CMake's visibility model is concerned. C++ modules have their own concept of visibility which does not require or support such `$<TARGET_OBJECTS>` reuse in this way.
| * | | | cmCommonTargetGenerator: return forward linked target dirs tooBen Boeckel2023-11-214-38/+62
| | | | | | | | | | | | | | | | | | | | | | | | | This will be used for module forwarding in order to support `$<TARGET_OBJECTS>` usage in source and link libraries calls.
| * | | | cmLocalUnixMakefileGenerator3: handle object-referencing Fortran modulesBen Boeckel2023-11-211-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Targets only using Fortran modules via `$<TARGET_OBJECTS>` also need a collation step to be performed. Check for this case and trigger the depends rule to be used.
| * | | | cmNinjaTargetGenerator: handle object-referencing Fortran modulesBen Boeckel2023-11-211-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Targets only using Fortran modules via `$<TARGET_OBJECTS>` also need a collation step to be performed. Check for this case and trigger the collation rule to be added and used.
| * | | | cmGeneratorTarget: also check included objects for Fortran modulesBen Boeckel2023-11-211-9/+37
| | | | | | | | | | | | | | | | | | | | | | | | | Fortran modules provided by objects in `$<TARGET_OBJECTS>` should also count as "has Fortran modules" for the target referencing the objects.
| * | | | cmCommonTargetGenerator: use modules from object-referenced targetsBen Boeckel2023-11-211-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fortran modules provided by objects added as sources via `$<TARGET_OBJECTS>` should also be considered as "linked targets" for collation purposes. As C++ modules have their own visibility rules through their `FILE_SET` feature, do not expose these for C++ module collation.
| * | | | cmGeneratorTarget: add a query for targets with objects in the source listBen Boeckel2023-11-212-9/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will be eventually be used to inform the collator of this information so that Fortran modules provided by the resulting objects can also be used as intended.
| * | | | cmGeneratorTarget: use pointers to `const` generator targets for languagesBen Boeckel2023-11-211-2/+2
| | | | |
| * | | | cmGeneratorTarget: track object libraries using a `set`Ben Boeckel2023-11-211-10/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids having to do manual "is already present" checks. The order the targets are processed does not need to be preserved because the resulting `languages` result is already a `set`.
| * | | | Merge branch 'revert-exact-collation-depends-3.27' (early part) into ↵Ben Boeckel2023-11-2117-0/+132
| |\ \ \ \ | | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fortran-objects-as-sources-fix * 'revert-exact-collation-depends-3.27' (early part): Tests/FortranModules: add test for TARGET_OBJECTS-as-linked-items module usage Tests/FortranModules: add test for TARGET_OBJECTS-as-sources module usage
| | * | | Tests/FortranModules: add test for TARGET_OBJECTS-as-linked-items module usageBen Boeckel2023-11-2110-0/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test module usage across a `$<TARGET_OBJECTS>`-as-linked-items use case. See: #25425
| | * | | Tests/FortranModules: add test for TARGET_OBJECTS-as-sources module usageBen Boeckel2023-11-218-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test module usage across a `$<TARGET_OBJECTS>`-as-sources use case. See: #25425
* | | | | Merge branch 'release-3.27' into release-3.28Brad King2023-11-220-0/+0
|\ \ \ \ \ | | |_|/ / | |/| | |
| * | | | Merge branch 'release-3.26' into release-3.27Brad King2023-11-220-0/+0
| |\ \ \ \ | | | |_|/ | | |/| |
| | * | | Merge branch 'doc-ctest-link-cdash' into release-3.26Brad King2023-11-211-2/+2
| | |\ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !8998
| * | \ \ \ Merge branch 'doc-ctest-link-cdash' into release-3.27Brad King2023-11-211-2/+2
| |\ \ \ \ \ | | | |/ / / | | |/| | | | | | | | | Merge-request: !8998
* | | | | | Merge topic 'doc-ctest-link-cdash' into release-3.28Brad King2023-11-221-2/+2
|\ \ \ \ \ \ | | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 486c89dd6a Help: Fix ctest(1) manual links to www.cdash.org Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8998
| * | | | | Help: Fix ctest(1) manual links to www.cdash.orgBrad King2023-11-211-2/+2
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the link was updated to `https` by commit 52eac4573d (Help: Fix link to cdash.org from CTest manual, 2021-04-21, v3.21.0-rc1~262^2~2) the markup was incorrectly adjusted to show the link as part of the "See Also" section. It is meant to be the link destination for links in prose elsewhere in the manual. Fix the markup and move it to a clearer location. Also update the link to resolve a redirect.
* | | | | Merge topic 'clang-scan-deps-failed-scan' into release-3.28Brad King2023-11-222-3/+18
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 77a7edb73f Clang-CXX: copy into the dyndep output on success Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Namniav W <namniav@gmail.com> Merge-request: !8991
| * | | | Clang-CXX: copy into the dyndep output on successBen Boeckel2023-11-212-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When `clang-scan-deps` fails to scan (e.g., bad source syntax, junk flags, etc.), the redirection unconditionally updates the file. If this fails, the `.ddi` file timestamp is updated. If the state is then reverted (e.g., the command line returns to the state of the last successful build), the updated file is not useful, but `ninja` does not rerun because: - the command hash matches the last successful run - the output file is newer than its inputs However, since the `.ddi` file has been updated with bogus contents from a failed scan, collation fails as the `rules` array is empty (or incomplete from a batch scan). If `clang-scan-deps` were properly aware of its output file, it could use this to not write the file if any inner scan fails. Requested in https://github.com/llvm/llvm-project/issues/72875. See: https://github.com/llvm/llvm-project/issues/72875 Fixes: #25429
* | | | | Merge branch 'release-3.27' into release-3.28Brad King2023-11-200-0/+0
|\ \ \ \ \ | | |_|/ / | |/| | |
| * | | | Merge branch 'release-3.26' into release-3.27Brad King2023-11-200-0/+0
| |\ \ \ \ | | | |/ / | | |/| |
| | * | | Merge branch 'fileapi-file-sets-base-dirs-relative' into release-3.26Brad King2023-11-204-7/+9
| | |\ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !8977
| * | \ \ \ Merge branch 'fileapi-file-sets-base-dirs-relative' into release-3.27Brad King2023-11-204-7/+9
| |\ \ \ \ \ | | | |/ / / | | |/| | | | | | | | | Merge-request: !8977
* | | | | | Merge topic 'fileapi-file-sets-base-dirs-relative' into release-3.28Brad King2023-11-204-7/+9
|\ \ \ \ \ \ | | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a3a85524cd fileapi: Fix file sets' base directories relative to top source Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !8977
| * | | | | fileapi: Fix file sets' base directories relative to top sourceKyle Edwards2023-11-174-7/+9
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This field was added by commit b3e9fb67bb (file-api: support exporting file set information, 2022-11-03, v3.26.0-rc1~389^2) but the relative path convention used elsewhere was accidentally left out. Fixes: #25422
* | | | | Merge branch 'release-3.27' into release-3.28Brad King2023-11-200-0/+0
|\ \ \ \ \ | | |/ / / | |/| | |
| * | | | Merge branch 'doc-CMP0149' into release-3.27Brad King2023-11-201-0/+7
| |\ \ \ \ | | | | | | | | | | | | | | | | | | Merge-request: !8990
| * \ \ \ \ Merge branch 'custom-command-ninja-deps' into release-3.27Brad King2023-11-201-2/+2
| |\ \ \ \ \ | | |_|_|_|/ | |/| | | | | | | | | | Merge-request: !8984
* | | | | | Merge topic 'doc-CMP0149' into release-3.28Brad King2023-11-201-0/+7
|\ \ \ \ \ \ | | |_|/ / / | |/| | | / | |_|_|_|/ |/| | | | | | | | | | | | | | fe0d03b044 Help: Document that CMP0149 should be set before project() Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8990
| * | | | Help: Document that CMP0149 should be set before project()Brad King2023-11-201-0/+7
| |/ / / | | | | | | | | | | | | Issue: #25413
* | | | Merge topic 'update-doc-deprecated-properties-on-targets' into release-3.28Brad King2023-11-201-3/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c53a341f9f Help: Move deprecated properties to dedicated section Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8982
| * | | | Help: Move deprecated properties to dedicated section權少2023-11-201-3/+3
| | | | |
* | | | | Merge topic 'custom-command-ninja-deps' into release-3.28Brad King2023-11-201-2/+2
|\ \ \ \ \ | |/ / / / |/| | / / | | |/ / | |/| | | | | | | | | | 3c8d1eef72 Ninja: depfile: keep rules without dependencies Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8984
| * | | Ninja: depfile: keep rules without dependenciesMarc Chevrier2023-11-201-2/+2
| |/ / | | | | | | | | | | | | | | | | | | To avoid repeated executions of custom command actions, depfile file with rules without dependencies must be preserved. Fixes: #25428
* | | Merge topic 'ci-fedora-39' into release-3.28Brad King2023-11-20122-438/+485
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9283b20659 ci: Suppress CPack/RPM tests pending fix for Fedora 39 18145e8745 ci: Update FindMPI test environment for mpich on Fedora 39 a8be80ccf2 ci: Drop now-unnecessary Clang rules for CXXModules tests 99238b23e9 ci: use Fedora 39 images and environments 57eadec617 ci: update Linux image to Fedora 39 653262162c clang-tidy module: Update to build against LLVM/Clang 17 2cf9a65835 clang-tidy: ignore warnings new in version 17 2744f14db1 codespell: Fix typos ... Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8983
| * | | ci: Suppress CPack/RPM tests pending fix for Fedora 39Brad King2023-11-171-0/+9
| | | | | | | | | | | | | | | | Issue: #25421
| * | | ci: Update FindMPI test environment for mpich on Fedora 39Brad King2023-11-171-1/+1
| | | | | | | | | | | | | | | | An explicit `FI_PROVIDER=tcp` seems to be needed to pass the test.
| * | | ci: Drop now-unnecessary Clang rules for CXXModules testsBrad King2023-11-174-6/+0
| | | | | | | | | | | | | | | | | | | | Starting with LLVM/Clang 17 we can use C++ modules with compiler extensions enabled.