Commit Graph

8574 Commits

Author SHA1 Message Date
Brad King
1c3300998f Merge topic 'short-object-names'
8180ecad9b autogen: support the `SHORT` intermediate dir strategy
f97d1bf7d8 Visual Studio: support shortened object filenames
a3a190c006 cmcmd: also forward rsp files in `.o` directories
3f33a5387a Makefiles: support shortened object filenames
b121adaa04 Makefiles: pass the target name to `cmake -E cmake_depends`
851e07fda3 Ninja: support short object directories
050f891d81 Tests: choose an explicit FULL strategy in tests expecting it
cce31527f8 Tests/ObjectLibrary: add shortened path tests
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10833
2025-07-30 11:36:21 -04:00
Ben Boeckel
8180ecad9b autogen: support the SHORT intermediate dir strategy 2025-07-29 09:44:03 -04:00
John Parent
f97d1bf7d8 Visual Studio: support shortened object filenames 2025-07-29 09:44:03 -04:00
Brad King
2ea26aff0c Merge topic 'patch-FindBZip2-version'
50f41bdf59 FindBZip2: Add BZip2_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10975
2025-07-29 09:43:20 -04:00
Brad King
318f90ff5f Merge topic 'revert-install-DIRECTORY-exclude-empty'
21e99dbf49 install(DIRECTORY): Revert "Add EXCLUDE_EMPTY_DIRECTORIES option"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10977
2025-07-29 09:40:54 -04:00
John Parent
3f33a5387a Makefiles: support shortened object filenames 2025-07-29 08:28:22 -04:00
John Parent
851e07fda3 Ninja: support short object directories 2025-07-29 08:06:30 -04:00
Brad King
21e99dbf49 install(DIRECTORY): Revert "Add EXCLUDE_EMPTY_DIRECTORIES option"
Revert commit b70ef48b27 (install(DIRECTORY): Add
EXCLUDE_EMPTY_DIRECTORIES option, 2025-04-20, v4.1.0-rc1~212^2).
The implementation had at least two problems:

* It did not exclude the top-level directory if empty.
* It did not exclude non-empty directories whose contents are
  all filtered out.

Revert the feature pending a revised implementation.

Issue: #19189
Closes: #27092
2025-07-28 14:21:09 -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
Brad King
211e652731 Merge topic 'doc-add_test-old'
b3f2455862 Help: The old add_test() form does not support TEST_LAUNCHER

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10970
2025-07-28 11:06:24 -04:00
Ralf Habacker
b3f2455862 Help: The old add_test() form does not support TEST_LAUNCHER
Extend commit 1ec0372ed4 (add_test: Optionally use a launcher for tests
running in-project targets, 2023-11-11, v3.29.0-rc1~237^2~1).

Fixes: #27083
2025-07-28 08:20:00 +02:00
Peter Kokot
50f41bdf59 FindBZip2: Add BZip2_VERSION
This deprecates the BZIP2_VERSION result variable.

Issue: #27088
2025-07-27 04:54:27 +02:00
Craig Scott
aa63990ca9 file API: Add JSON schema files
Fixes: #26987
2025-07-26 18:51:27 +10:00
Brad King
6101c162d8 Merge topic 'doc-renesas-relnote'
d95135b9cd Help: Add 4.1 release note for Renesas compiler support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10967
2025-07-24 11:25:51 -04:00
Hirofumi Nakamura
d95135b9cd Help: Add 4.1 release note for Renesas compiler support
This was missed in commit 514135f563 (Renesas: Add support for Renesas
compilers, 2025-04-14, v4.1.0-rc1~89^2).

Issue: #26880
2025-07-24 10:33:52 -04:00
Brad King
558b3922c3 Merge topic 'ExternalProject-env-vars'
e301cbffcc ExternalProject: Set environment variables
ff21c3f78a Help: ENVIRONMENT_MODIFICATION: split modification ops

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !10842
2025-07-23 12:08:36 -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
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
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
Brad King
5c59490b09 Merge topic 'doc-listfile-term'
51f838f8a8 Help: Add `listfile` definition to man pages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10960
2025-07-22 11:59:33 -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
7dbe092d77 instrumentation: Support preBuild and postBuild hooks on Windows
* Use `uv_disable_stdio_inheritance` to resolve the deadlock between the
parent build system process and `ctest
--wait-and-collect-instrumentation` on Windows.
* Remove Windows gating from preBuild and postBuild indexing and update
tests and documentation accordingly.

Fixes: #26668
2025-07-22 10:51:03 -04:00
Andrew Howe
51f838f8a8 Help: Add listfile definition to man pages
The term `listfile` was previously used without a definition in the man
pages, e.g., `CMAKE_CURRENT_LIST_FILE` in `cmake-variables(7)`.

Closes: #18512
2025-07-21 12:19:26 -04:00
Peter Kokot
0622cb343e AIX: Drop unnecessary -l from CMAKE_DL_LIBS
The `-lld` linker flag was added from the previous command-line script
that have all values in `CMAKE_DL_LIBS` prepended with `-l`.

On AIX, the `dlopen()` is otherwise in C library (default). But it seems
that also `libld` library was once needed on some versions to have
dynamic loading working.

Sync `CMAKE_DL_LIBS` value style with all other current usages.
2025-07-21 11:34:03 -04:00
Brad King
816e235609 Merge topic 'patch-TestBigEndian'
59da6d9e5c TestBigEndian, CMAKE_<LANG>_BYTE_ORDER: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10950
2025-07-21 10:24:09 -04:00
Brad King
88e66a8fc7 Merge topic 'patch-CMAKE_DL_LIBS'
934567de19 CMAKE_DL_LIBS: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10953
2025-07-21 10:19:33 -04:00
Brad King
5e26f8d3a7 Merge topic 'instrumentation-ctest-interface'
21ac285cd8 Experimental: Update the Instrumentation UUID
9dec460c8c instrumentation: Store CDash settings in query files
afa94bae1e instrumentation: Rename queries field to options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10934
2025-07-21 10:13:32 -04:00
Brad King
f8dcf102d9 Merge topic 'find-package-unwind'
f61768107e find_package: Implement UNWIND_INCLUDE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10943
2025-07-21 10:09:00 -04:00
Peter Kokot
934567de19 CMAKE_DL_LIBS: Update documentation 2025-07-18 22:39:18 +02:00
Bastien Montagne
3a9d56d2c7 Ninja: Add support for per-source JOB_POOL_COMPILE property
This commit allows to override a global or target-wide 'job pool'
property on a per-source basis.

It modifies the Ninja generator to first look into the source's
properties, and only use the target properties as a fallback.

The new `source` parameter to
`cmNinjaTargetGenerator::addPoolNinjaVariable` may be null, e.g. when
the function is called in context where there is no source (e.g. a
linking task).

Closes: #23994
2025-07-16 21:16:24 +02:00
Bastien Montagne
44bf494fe6 Help: Global SPLIT_JOBS: reformat usages into a list. 2025-07-16 20:31:32 +02:00
Brad King
1f9de0c82d Merge topic 'cmake-parent-fix'
41aea12941 Do not define CMAKE_PARENT_LIST_FILE in CMakeLists.txt

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10930
2025-07-16 11:27:00 -04:00
Peter Kokot
59da6d9e5c TestBigEndian, CMAKE_<LANG>_BYTE_ORDER: Update documentation
- Fixed typo in the module description.
- Added examples section highlighting the code migration towards the
  `CMAKE_<LANG>_BYTE_ORDER` variable.
- Documented command similar to other modules.
- Added examples for the `CMAKE_<LANG>_BYTE_ORDER` variable and
  explained when endianness for different languages can be used.
2025-07-16 14:55:48 +02:00
Benjamin Buch
41aea12941 Do not define CMAKE_PARENT_LIST_FILE in CMakeLists.txt
Add policy `CMP0198` for compatibility.

Issue: #25026
2025-07-15 11:51:45 -04:00
Brad King
0b1dace035 Merge topic 'codemodel-version-directory-target-objects'
4315076f2e fileapi: Add codemodelVersion fields to target and directory objects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10928
2025-07-15 10:47:42 -04:00
Martin Duffy
21ac285cd8 Experimental: Update the Instrumentation UUID
Update experimental UUID for instrumentation after commit afa94bae1e
(instrumentation: Rename queries field to options, 2025-07-08) broke compatibility
for old queries.
2025-07-15 08:38:44 -04:00
Martin Duffy
9dec460c8c instrumentation: Store CDash settings in query files
Adds new `cdashSubmit` and `cdashVerbose` options to allow enabling
instrumentation in CDash submissions using query files or the
`cmake_instrumentation` command.

Fixes: #26783, #26727
2025-07-14 15:44:52 -04:00
Vito Gamberini
f61768107e find_package: Implement UNWIND_INCLUDE
This implements a limited exception mechanism for find_package() via
the UNWIND_INCLUDE keyword.

When package discovery via find_package(UNWIND_INCLUDE) fails the
StateSnapshot is updated to an UNWINDING state. In this state further
calls to find_package() and include() are forbidden. While in the
UNWINDING state, the include() command immediately calls
SetReturnInvoked() whenever it is reached.

The UNWINDING state is reset when a parent call to find_package() is
reached.

Fixes: #26897
2025-07-13 16:08:19 -04:00
Craig Scott
4315076f2e fileapi: Add codemodelVersion fields to target and directory objects
This will allow JSON schemas for these two types of files to describe the
version-specific content without requiring any outside information.

Fixes: #27031
2025-07-13 14:59:03 +10:00
Martin Duffy
afa94bae1e instrumentation: Rename queries field to options
Fixes: #26728
2025-07-10 16:25:07 -04:00
Evan Wilde
ff21c3f78a Help: ENVIRONMENT_MODIFICATION: split modification ops
Refactoring the environment modification ops list out of the environment
modification help file.
2025-07-10 12:23:15 -07:00
Dan Raviv
72bb891348 Help: Document WORKING_DIRECTORY default behavior missing in some commands 2025-07-09 19:33:35 -07:00
Brad King
64b35e8fcb Merge topic 'gtest-use-json-output-for-discovery'
088b0af2f9 GoogleTest: Fix naming of tests with named parameters
3f780c3fde GoogleTest: Set DEF_SOURCE_LINE on tests if file and line are known
1cdceae8e3 GoogleTest: Parse discovered test list from JSON output if supported
07d14c21a9 GoogleTest: Add tests for NO_PRETTY_VALUES and NO_PRETTY_TYPES
54bb974b27 GoogleTest: Add tests for named parameters

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Dennis Lambe <malsyned_kitware@malsyned.net>
Merge-request: !10739
2025-07-08 09:40:03 -04:00
Dennis Lambe Jr.
088b0af2f9 GoogleTest: Fix naming of tests with named parameters
Recent changes to the JSON and stdout parsers changed the current test
names from an unintentional bug to an intentional compatibility hack.
This commit removes that compatibility hack and makes tests with named
parameters follow the same naming conventions as tests with numbered
parameters.

Fixes: #26939
2025-07-08 07:58:35 +10:00
Ottmar Zittlau
3f780c3fde GoogleTest: Set DEF_SOURCE_LINE on tests if file and line are known
This information is available when --gtest_output=json is supported,
which it almost always is on GoogleTest >= 1.8.1.
2025-07-08 07:58:34 +10:00
Brad King
6ffcca0424 Merge topic 'doc-file-api-omissions'
da73f6b058 Help: Add cxxModuleBmi details missing from file API and release notes
bef17abc09 Help: Add file API fileSet... fields missed in the 3.23 release notes
094436db98 Help: The fileSets item in a codemodel target object is optional
1398ef18c2 Help: Add missing backtrace property to compileCommandFragments
74d70d13cd Help: Fix repeated word in file API docs for sourceFileExtensions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10913
2025-07-07 11:18:02 -04:00
Craig Scott
da73f6b058 Help: Add cxxModuleBmi details missing from file API and release notes
Fixes: #27028
2025-07-04 11:01:15 +10:00
Craig Scott
bef17abc09 Help: Add file API fileSet... fields missed in the 3.23 release notes 2025-07-04 10:34:33 +10:00