Commit Graph
67634 Commits
Author SHA1 Message Date
Brad King 505ffdcbde cmGlobalNinjaGenerator: Clarify order of codegen build statement logic
Make it more consistent with the equivalent logic for "all".
2024-12-10 11:41:27 -05:00
Brad King 5f33736c03 cmGlobalNinjaGenerator: Fix local variable name for codegen target 2024-12-10 11:41:26 -05:00
Brad King e308d1bb88 cmGlobalNinjaGenerator: Remove unnecessary local variable 2024-12-10 11:41:26 -05:00
Brad King c08543d711 cmGlobalNinjaGenerator: Remove unused local variable 2024-12-10 11:41:26 -05:00
Brad King c5ad3f9792 Merge topic 'vs-clang-cl-c++23' into release-3.31
30139913e9 VS: Restore support for mixing C++23 and C in one target with clang-cl
57da8712c1 VS: Factor out check for mixed C and C++ target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10082
2024-12-10 09:12:02 -05:00
Brad King 30139913e9 VS: Restore support for mixing C++23 and C in one target with clang-cl
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
2024-12-09 14:57:35 -05:00
Brad King 57da8712c1 VS: Factor out check for mixed C and C++ target 2024-12-09 14:19:51 -05:00
Brad King 793c5f11f6 CMake 3.31.2 v3.31.2 2024-12-05 08:42:47 -05:00
Brad King 4d4d7b793d Merge topic 'autogen-revert-ui-rebuild' into release-3.31
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
2024-12-05 08:10:35 -05:00
Brad King eca2e2650a Merge topic 'linker-prefix-crash' into release-3.31
76f4fc7dd0 LINK_OPTIONS: Fix crash on empty LINKER: prefix

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10066
2024-12-05 08:09:25 -05:00
Brad King 8a1bc43662 Merge topic 'ci-fedora-41' into release-3.31
ec682ff22a ci: Update to ROCm 6 HIP on Fedora 41

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10069
2024-12-05 08:07:54 -05:00
Brad King ec682ff22a ci: Update to ROCm 6 HIP on Fedora 41
The problem that motivated commit 3a44b8dfc0 (ci: Move job for HIP tests
on Fedora 39 to a dedicated base image, 2024-04-24, v3.30.0-rc1~202^2~11)
turns out to be exposed by spaces in the path to HIP binaries.  Move the
CI work directory to a path without spaces.

Closes: #25932
2024-12-04 12:35:01 -05:00
Brad King 76f4fc7dd0 LINK_OPTIONS: Fix crash on empty LINKER: prefix
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
2024-12-04 10:16:56 -05:00
Brad King bf9b13920d Merge topic 'fileapi-no-link-dependency-file' into release-3.31
1a04515a47 fileapi: Do not expose flags for linker-generated dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10061
2024-12-04 08:53:52 -05:00
Orkun Tokdemir debc4d3906 Autogen: Revert adding ui files to byproducts of the timestamp target
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
2024-12-04 12:37:13 +01:00
Brad King 1a04515a47 fileapi: Do not expose flags for linker-generated dependencies
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
2024-12-03 13:48:57 -05:00
Brad King 50afcb61f7 Merge topic 'FindPython-SABIModule-handling' into release-3.31
ff65c5fca0 FindPython: Ensure SABIModule is found in all cases

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10058
2024-12-03 09:04:41 -05:00
Brad King db3930323b Merge topic 'FindRuby-3.4' into release-3.31
21e51dca1d FindRuby: Add support for 3.4

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10055
2024-12-03 09:00:46 -05:00
cfis 21e51dca1d FindRuby: Add support for 3.4 2024-12-02 13:25:54 -05:00
Marc Chevrier ff65c5fca0 FindPython: Ensure SABIModule is found in all cases
Fixes: #26493
2024-12-02 17:37:18 +01:00
Brad King 27647acc6c Merge topic 'linker-depfile-flag' into release-3.31
f4e74af1ea GNU linker: Use single-argument form of --dependency-file flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10049
2024-11-29 10:00:12 -05:00
Brad King 1c757eaa54 Merge topic 'intel-classic-no-linker-depfile' into release-3.31
aeaec06267 Intel/Classic: deactivate linker dependency file support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10048
2024-11-29 09:58:59 -05:00
Brad King d967072011 Merge topic 'autogen-ninja-multi-config' into release-3.31
8a526f6a44 Autogen: Fix Ninja Multi-Config dependency graph regression
3cac48e8cd Autogen: Restore <target_name>_autogen_timestamp_deps target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10039
2024-11-29 09:57:20 -05:00
Brad King f4e74af1ea GNU linker: Use single-argument form of --dependency-file flag
The GNU `ld(1)` manual documents the `--dependency-file=depfile`
single-argument form of the flag.  Prefer it over the multi-argument
`--dependency-file depfile` form so that only one argument needs to be
passed through the compiler driver by `-Wl,` or equivalent.  This may
improve diagnostics in cases where it is unsupported, making them easier
to diagnose.

Issue: #26483
2024-11-28 10:07:52 -05:00
Marc Chevrier aeaec06267 Intel/Classic: deactivate linker dependency file support
The Intel Classic compilers' IPO plugins do not support the
`-Wl,--dependency-file,...` linker flag.

Fixes: #26483
2024-11-28 09:54:22 -05:00
Brad King 75b3cc67c9 Merge topic 'tutorial-step-7-todo-4' into release-3.31
dccf2bdb75 Tutorial: Restore TODO 4 comment in step 7

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Betsy McPhail <betsy.mcphail@kitware.com>
Merge-request: !10045
2024-11-28 09:19:00 -05:00
Orkun Tokdemir 8a526f6a44 Autogen: Fix Ninja Multi-Config dependency graph regression
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
2024-11-28 09:13:56 -05:00
Orkun Tokdemir 3cac48e8cd Autogen: Restore <target_name>_autogen_timestamp_deps target
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
2024-11-28 09:13:46 -05:00
Brice Decaestecker dccf2bdb75 Tutorial: Restore TODO 4 comment in step 7
Restore a comment added by commit f9ef15f3dc (Tutorial: Update step 7
style, 2022-10-07, v3.26.0-rc1~482^2) that was accidentally removed by
commit 8ddf32196c (Tutorial: Refactor MathFunctions code, 2023-02-10,
v3.27.0-rc1~441^2).
2024-11-27 09:28:34 -05:00
Brad King 2fad42832d Merge topic 'aix-archive-shared-libraries-export' into release-3.31
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
2024-11-23 15:12:49 -05:00
Brad King 5caaf1d651 Merge topic 'aix-archive-shared-libraries-genex' into release-3.31
f923463f2b AIX: Disallow TARGET_SONAME_* genex for AIX_SHARED_LIBRARY_ARCHIVE targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10028
2024-11-22 12:30:59 -05:00
Brad King cd6fb63093 AIX: Propagate AIX_SHARED_LIBRARY_ARCHIVE through exports
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.
2024-11-21 19:02:00 -05:00
Brad King f923463f2b AIX: Disallow TARGET_SONAME_* genex for AIX_SHARED_LIBRARY_ARCHIVE targets
AIX shared library archives have no filesystem artifact named with their
SONAME because it is in an archive.
2024-11-21 18:44:25 -05:00
Brad King eb281d3454 CMake 3.31.1 v3.31.1 2024-11-21 11:15:52 -05:00
Brad King 0576d076b1 Merge branch 'release-3.30' into release-3.31 2024-11-21 09:54:18 -05:00
Brad King 817707b904 CMake 3.30.6 v3.30.6 2024-11-21 09:18:01 -05:00
Brad King 0349079e35 Merge branch 'release-3.30' into release-3.31 2024-11-21 09:12:04 -05:00
Brad King 66817bd07d Merge branch 'release-3.29' into release-3.30 2024-11-21 09:11:40 -05:00
Brad King b47368e425 CMake 3.29.9 v3.29.9 2024-11-21 08:34:26 -05:00
Brad King c1ff140c7c Merge branch 'release-3.30' into release-3.31 2024-11-21 08:26:35 -05:00
Brad King 82aaccc576 Merge topic 'execute_process-OUTPUT_FILE-cloexec' into release-3.31
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
2024-11-21 08:24:18 -05:00
Brad King b669ffe508 Merge branch 'release-3.29' into release-3.30 2024-11-20 11:15:54 -05:00
Brad King 8b410dd156 Merge topic 'execute_process-OUTPUT_FILE-cloexec' into release-3.30
60af429c5d execute_process: Restore CLOEXEC on OUTPUT_FILE and ERROR_FILE descriptors

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10014
2024-11-20 11:15:25 -05:00
Brad King 2ef3bc896b Merge topic 'execute_process-OUTPUT_FILE-cloexec' into release-3.29
60af429c5d execute_process: Restore CLOEXEC on OUTPUT_FILE and ERROR_FILE descriptors

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10014
2024-11-20 11:14:51 -05:00
Brad King 5b2f718f26 Merge topic 'cps-export-experimental-message' into release-3.31
71784bb6d8 cmExperimental: Make CPS-export experimental notice more consistent

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10019
2024-11-20 09:20:03 -05:00
Brad King 60af429c5d execute_process: Restore CLOEXEC on OUTPUT_FILE and ERROR_FILE descriptors
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
2024-11-20 06:16:11 -05:00
Matthew Woehlke 71784bb6d8 cmExperimental: Make CPS-export experimental notice more consistent
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.
2024-11-19 17:40:06 -05:00
Brad King 6b9aee9f38 Merge topic 'Linux-deduplication-static-libs' into release-3.31
0445190d2f LLD linker: avoid regression on archive libraries deduplication

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10010
2024-11-19 10:14:40 -05:00
Brad King a59e24cd50 Merge topic 'update-libarchive' into release-3.31
ddb72eb3e6 Merge branch 'upstream-LibArchive' into update-libarchive
ad48f00c30 LibArchive 2024-10-13 (b439d586)
e048b0cc94 libarchive: Update script to get 3.7.7

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10011
2024-11-19 10:12:38 -05:00
Marc Chevrier 0445190d2f LLD linker: avoid regression on archive libraries deduplication
Due to a bug on LLD linker for ELF binaries, deduplication should
occur only if CMP0156 and CMP0179 are NEW.

Fixes: #26447
2024-11-18 21:02:50 +01:00