Commit Graph

37801 Commits

Author SHA1 Message Date
John Parent 851e07fda3 Ninja: support short object directories 2025-07-29 08:06:30 -04:00
John Parent 526a6f2a81 cmGeneratorTarget: shorten PCH filenames 2025-07-29 08:06:29 -04:00
John Parent 1feb801463 cmLocalGenerator: support shortening object filenames 2025-07-29 08:06:29 -04:00
John Parent 76f01de30e cmLocalGenerator: add a GetRelativeSourceFileName method
This will be used for short object path support.
2025-07-29 08:06:29 -04:00
John Parent 324907a60b cmGlobalGenerator: add methods for use when implementing short dir support 2025-07-29 08:06:28 -04:00
John Parent e1041bd270 cmLocalCommonGenerator: factor out "long" directory calculation 2025-07-28 12:01:28 -04:00
Ben Boeckel c4bf198aed cmGeneratorTarget: add a query for whether to use short object names 2025-07-28 12:01:28 -04:00
Ben Boeckel 02b2153d84 cmGlobalGenerator: add a query to represent support for short object names 2025-07-28 12:01:28 -04:00
John Parent 392543384f cmake: support setting the intermediate dir strategy from the environment 2025-07-28 12:01:28 -04:00
John Parent c6763bb021 ctest: support a new --objects-dir argument
When shorter object directories are used, CTest needs to know where to
look for artifacts.
2025-07-28 12:01:28 -04:00
Ben Boeckel dcba9ed828 Makefiles: populate the TARGET_SUPPORT_DIR replacement variable 2025-07-28 12:01:27 -04:00
Ben Boeckel dfba904178 Ninja: populate the TARGET_SUPPORT_DIR replacement variable 2025-07-28 12:01:27 -04:00
Ben Boeckel d1393cc69e cmRulePlaceholderExpander: expand <TARGET_SUPPORT_DIR> placeholders 2025-07-28 12:01:27 -04:00
Ben Boeckel cf1a17861b cmLocalGenerator: add <CMAKE_{BINARY,SOURCE}_DIR> expanders 2025-07-28 12:01:27 -04:00
Brad King a69131cd88 Merge topic 'export-refactor'
078b96f927 cmExportCommand: Refactor export(EXPORT ... ) to use subparsers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10965
2025-07-28 11:08:24 -04:00
Taylor Sasser 078b96f927 cmExportCommand: Refactor export(EXPORT ... ) to use subparsers 2025-07-28 09:50:44 -04:00
Brad King c577c7c145 Merge topic 'ci-clazy'
bdb9d818d2 ci: Add lint job to run clazy on our C++ code
c6b2439aad ci: Add clazy to Fedora base image
a1b7710241 ci: configure 'typos' to tolerate a standard streambuf member
24c7c13cc6 Source: Fix typos
564f13fed6 Merge branch 'lfortran-module-mangling' into ci-clazy

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10966
2025-07-28 09:43:33 -04:00
Brad King f825f2be93 Merge topic 'curl-8.15-deprecated-sectransp'
00c34a7d25 cmCurl: Suppress curl 8.15 deprecation warning for curl 8.[3-5] workaround

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10971
2025-07-28 09:25:53 -04:00
Kitware Robot 6b6e276c30 CMake Nightly Date Stamp 2025-07-28 00:07:36 -04:00
Craig Scott 96a8993671 Merge topic 'ctest-build-and-test-no-project'
0b7d8e4ad6 xcode: Restore ctest --build-and-test without --build-project

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10972
2025-07-27 17:57:10 -04:00
Kitware Robot 4948d14c65 CMake Nightly Date Stamp 2025-07-27 00:05:11 -04:00
Stepanov Igor 0b7d8e4ad6 xcode: Restore ctest --build-and-test without --build-project
Previously, it used to be possible to execute ctest --build-and-test
without specifying --build-project. When used with the Xcode generator,
this would work as long as there was only one .xcodeproj file in the
directory, where xcodebuild would then default to using that project.
The recent changes to support .xcworkspace files broke that logic, placing
a malformed pair of options "-project .xcodeproj" on the command line
instead of omitting the "-project" option altogether.

Fixes: #27090
2025-07-26 19:43:28 +10:00
Kitware Robot 74e5036a22 CMake Nightly Date Stamp 2025-07-26 00:04:56 -04:00
Kitware Robot 40824a6ea2 CMake Nightly Date Stamp 2025-07-25 00:05:52 -04:00
Brad King 00c34a7d25 cmCurl: Suppress curl 8.15 deprecation warning for curl 8.[3-5] workaround
Curl 8.15 removed support for Secure Transport and deprecated the
corresponding `CURLSSLBACKEND_SECURETRANSPORT` constant.  We still need
the constant in a workaround for a runtime-checked range of older curl
versions.  Suppress the deprecation warning at compile time.

Fixes: #27086
2025-07-24 11:33:01 -04:00
Brad King 24c7c13cc6 Source: Fix typos 2025-07-24 10:39:21 -04:00
Brad King f60e3852af Merge topic 'update-kwsys'
ea46bc69d5 Merge branch 'upstream-KWSys' into update-kwsys
278ce30d07 KWSys 2025-07-24 (bf2d9893)
ce54396676 cmFileCopier: Remove explicit default argument

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10959
2025-07-24 10:20:48 -04:00
Brad King ea46bc69d5 Merge branch 'upstream-KWSys' into update-kwsys
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2025-07-24 (bf2d9893)
2025-07-24 09:45:32 -04:00
Brad King e3f57a60ba Merge topic 'add-subparsers'
aaeffdfe6b cmArgumentParser: Refactor to allow for nested parsers
18f818f556 cmArgumentParser: Move parser state into dedicated struct

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10963
2025-07-24 09:37:23 -04:00
Brad King 52fce8d4fb Merge topic 'target-origin'
cc42f1047b cmTarget: Add origin property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Vito Gamberini <vito.gamberini@kitware.com>
Acked-by: Matthew Woehlke <matthew.woehlke@kitware.com>
Merge-request: !10964
2025-07-24 09:31:01 -04:00
Kitware Robot 2d30c49cb9 CMake Nightly Date Stamp 2025-07-24 00:09:03 -04:00
Brad King fa3978fa85 CMake 4.1.0-rc3 2025-07-23 15:04:24 -04:00
Brad King 671b52fc5d Merge topic 'pchreuse-refactor'
11ee18b758 ci: extend msvc_v71_nmake `RunCMake.PrecompileHeaders` test timeout
1c91fadbe8 Tests/RunCMake/PrecompileHeaders: support extended timeout
42f2867b3b pchreuse: defer dependency addition until generation time
f9bc615d9a pchreuse: ban PCH reuse from targets which disable PCH
f78f592b78 pchreuse: defer target existence enforcement to generation time
3ef773490d pchreuse: defer PCH consistency checks to generation time
1d701491a2 pchreuse: always ask the PCH reuse target for PDB information
6e7da8aa95 cmGeneratorTarget: factor out reuse target computation
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: alcroito <alexandru.croitor@qt.io>
Acked-by: Vincent X <gulackeg@gmail.com>
Merge-request: !10887
2025-07-23 12:07:07 -04:00
Brad King dbd12c8bff Merge topic 'instrumentation-windows'
f7756853c5 instrumentation: Exclude (pre|post)Build hooks with MSYS Makefiles
455944508e instrumentation: Remove ninja-specific references
7dbe092d77 instrumentation: Support preBuild and postBuild hooks on Windows
6d6c8303f9 Tests: Teach RunCMake.Instrumentation to tolerate make tool output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10932
2025-07-23 12:03:11 -04:00
Taylor Sasser aaeffdfe6b cmArgumentParser: Refactor to allow for nested parsers 2025-07-23 09:42:05 -04:00
Kitware Robot 6754d2f9b8 CMake Nightly Date Stamp 2025-07-23 00:04:56 -04:00
Taylor Sasser 18f818f556 cmArgumentParser: Move parser state into dedicated struct 2025-07-22 14:15:25 -04:00
Ben Boeckel 42f2867b3b pchreuse: defer dependency addition until generation time
Note that this does lose the backtrace information. It also, however,
makes `PRECOMPILE_HEADERS_REUSE_FROM` a non-magic property now.
Previously, appending to the property would miss all of its behaviors
(or leave existing setup in-place which is no longer relevant
post-append). Rather than making a policy to block appending, just defer
all logic to generation time.
2025-07-22 12:42:58 -04:00
Ben Boeckel f9bc615d9a pchreuse: ban PCH reuse from targets which disable PCH 2025-07-22 12:42:57 -04:00
Ben Boeckel f78f592b78 pchreuse: defer target existence enforcement to generation time
Now that generation can work with any way the state gets to the way it
is, just do the target enforcement at generation time. This allows PCH
reuse targets to be declared before or after targets which use them.

Also update `cmLocalGenerator` to use the methods now that they reliably
provide values rather than parallel construction.
2025-07-22 12:42:57 -04:00
Ben Boeckel 3ef773490d pchreuse: defer PCH consistency checks to generation time
There's no reason that during-configure inconsistencies should block
generation. It can be detected at that point instead.
2025-07-22 12:42:57 -04:00
Ben Boeckel 1d701491a2 pchreuse: always ask the PCH reuse target for PDB information
The property settings set things up once, but nothing ensures that
post-reuse hookup that any property changes propagate. Instead, when
computing PDB information, if PCH reuse is enabled, just always use its
values.

Also drop enforcement at generate time of property value consistency as
it is now ignored when PCH reuse is in effect.

Additionally, if a target is PCH-reused, generate a PDB output directory
for it.

The `PchReuseFromIgnoreOwnProps` test failed previously because the
post-reuse link update of the consuming `PDB` properties are no longer
considered. The `PchReuseFromUseUpdatedProps` failed because the
post-reuse link did not update the copy of the properties added to
consuming reuse target properties.
2025-07-22 12:42:57 -04:00
Ben Boeckel 6e7da8aa95 cmGeneratorTarget: factor out reuse target computation 2025-07-22 12:42:57 -04:00
Ben Boeckel 99bdf2ae16 cmLocalGenerator: add PDB copying dependency on its script 2025-07-22 12:42:57 -04:00
Ben Boeckel d3849f9de1 cmLocalGenerator: add a useful comment for the PDB copying command 2025-07-22 12:42:57 -04:00
Ben Boeckel cb46c4a918 cmLocalGenerator: fix quoting in generated script 2025-07-22 12:42:57 -04:00
Brad King f2727c6e05 Merge topic 'ninja-per-source-job-pool'
3a9d56d2c7 Ninja: Add support for per-source JOB_POOL_COMPILE property
44bf494fe6 Help: Global SPLIT_JOBS: reformat usages into a list.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10936
2025-07-22 12:07:38 -04:00
Matthew Woehlke cc42f1047b cmTarget: Add origin property
Add the concept of "origin" to cmTarget. For now, only CPS targets get a
unique origin, but this might be expanded in the future. This will allow
us to implement different behaviors based on a target's origin.

In particular, this has been requested as a means of addressing #26998
and #27022.
2025-07-22 11:20:10 -04:00
Tyler Yankee f7756853c5 instrumentation: Exclude (pre|post)Build hooks with MSYS Makefiles
The implementation of (pre|post)Build hooks rely on a direct parent-
child relationship between the build system process and `ctest
--start-instrumentation`. MSYS2's `make.exe` uses the msys-runtime POSIX
compatibility layer which disrupts this relationship.
2025-07-22 11:06:41 -04:00
Tyler Yankee 455944508e instrumentation: Remove ninja-specific references
Amend commit 314440c320 (instrumentation: Run preBuild and postBuild
hooks before and after make, 2025-02-05) to make comments and variables
names in `cmInstrumentation` agnostic to the build system being used.
2025-07-22 10:51:15 -04:00