Commit Graph

3822 Commits

Author SHA1 Message Date
Peter Kokot
5f2fdb7cbf FindPNG: Add PNG_VERSION
This deprecates the PNG_VERSION_STRING result variable.

Additionally, the documentation has been adjusted and synced with other
similar find modules:
- Added "Deprecated Variables" section and deprecated versions.
- Added intro code block how to use this module.

Issue: #27088
2025-07-31 21:02:05 +02:00
Peter Kokot
dd714b4b99 FindLibXslt: Add LibXslt_VERSION
This deprecates the LIBXSLT_VERSION_STRING result variable.

Issue: #27088
2025-07-31 20:59:21 +02:00
Peter Kokot
1b956832d8 FindLibXml2: Add LibXml2_VERSION
This deprecates the LIBXML2_VERSION_STRING result variable.

Issue: #27088
2025-07-31 20:57:44 +02:00
Peter Kokot
2ce689eae2 FindJasper: Add Jasper_VERSION
This deprecates the JASPER_VERSION_STRING result variable.

Issue: #27088
2025-07-31 20:56:41 +02:00
Peter Kokot
58d61f6846 FindFreetype: Add Freetype_VERSION
This deprecates the FREETYPE_VERSION_STRING result variable.

Issue: #27088
2025-07-31 20:55:15 +02:00
Peter Kokot
1e61580bd3 FindEXPAT: Add EXPAT_VERSION
This deprecates the EXPAT_VERSION_STRING result variable, which was
previously not documented.

Issue: #27088
2025-07-31 20:48:54 +02:00
Brad King
43a86ba605 Merge topic 'patch-FindPostgreSQL-version'
4d4d10e95d FindPostgreSQL: Add PostgreSQL_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Vito Gamberini <vito.gamberini@kitware.com>
Merge-request: !10987
2025-07-31 11:02:49 -04:00
Brad King
6d265917af Merge topic 'patch-FindALSA-version'
5df1d3f036 FindALSA: Add ALSA_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Vito Gamberini <vito.gamberini@kitware.com>
Merge-request: !10986
2025-07-31 10:57:05 -04:00
Brad King
04abde5ee3 Merge topic 'fix-config-genex'
8ac826a5f2 GenEx: Fix evaluation of $<CONFIG> on imported targets
9b36e49ad9 cmGeneratorExpressionNode: Remove dead code from ConfigurationTestNode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10940
2025-07-31 10:52:56 -04:00
Matthew Woehlke
8ac826a5f2 GenEx: Fix evaluation of $<CONFIG> on imported targets
The historic implementation of `$<CONFIG>` had some errors that could
result in multiple configurations matching. First, it always considered
the configuration of the consuming target, even if a consumed imported
target selected a different configuration. Second, it matched the entire
list of `MAP_IMPORTED_CONFIG_<CONFIG>` configurations, even if none of
those were actually selected. The latter in particular is redundant at
best, as we also consider the selected configuration of an imported
target, which is the correct configuration to match for imported
targets. Refactor the implementation so that only one configuration is
considered.

Fixes: #23660
Issue: #27022
2025-07-30 15:12:03 -04:00
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
Peter Kokot
4d4d10e95d FindPostgreSQL: Add PostgreSQL_VERSION
This deprecates the PostgreSQL_VERSION_STRING result variable.

Issue: #27088
2025-07-30 03:02:52 +02:00
Peter Kokot
5df1d3f036 FindALSA: Add ALSA_VERSION
This deprecates the ALSA_VERSION_STRING result variable, which was
previously documented up to CMake 3.11 and then removed from the docs
due to refactorings.

Issue: #27088
2025-07-30 01:10:08 +02: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
Peter Kokot
50f41bdf59 FindBZip2: Add BZip2_VERSION
This deprecates the BZIP2_VERSION result variable.

Issue: #27088
2025-07-27 04:54:27 +02: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
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
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
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
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
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
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
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
Brad King
b10daadd08 Deprecate Visual Studio 14 2015 generator
Update documentation to mark the generator deprecated.  Add a warning at
the end of generation plus an option to turn off the warning.
2025-06-26 09:27:24 -04:00
Brad King
f19c3b8be6 Merge topic 'COMPILER_LINKER-GenEx'
60fb5a5792 GenEx: add expressions related to linker

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10888
2025-06-20 13:48:17 -04:00
Marc Chevrier
60fb5a5792 GenEx: add expressions related to linker
Introduce the following genex:
* <LANG>_COMPILER_LINKER_ID
* <LANG>_COMPILER_LINKER_FRONTEND_VARIANT

Fixes: #26991
2025-06-19 16:11:17 +02:00
Quinn Powell
96d9b94a98 Emscripten: Add platform modules
Issue: #18423
2025-06-17 15:07:45 -04:00
Brad King
7b4a7a91eb Begin post-4.1 development 2025-06-17 10:58:36 -04:00
Brad King
29f34383f4 Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2025-06-17 10:54:00 -04:00
Brad King
c00896a7f5 Help: Organize and revise 4.1 release notes
Add section headers similar to the 4.0 release notes and move each
individual bullet into an appropriate section.  Revise a few bullets.
2025-06-17 09:46:48 -04:00
Brad King
f841c65b53 Help: Consolidate 4.1 release notes
Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/$ver.rst`.
2025-06-17 09:39:03 -04:00
Vito Gamberini
d71b59a4f7 install(TARGETS): Don't ignore non-extant file sets
When installing FILE_SETs, it is possible the FILE_SET has not yet been
created with target_sources(FILE_SET). Instead of ignoring this
situation, we need to track the installed FILE_SET names and their
possible install destinations.

At generation time we resolve the names and destinations concretely. If
a FILE_SET wasn't provided or isn't an INTERFACE, we silently bail out.

Fixes: #26697
2025-06-12 16:58:11 -04:00
Brad King
e84aaa27af Merge branch 'release-4.0' 2025-06-12 11:02:10 -04:00
Brad King
79e82f371c CMake 4.0.3 2025-06-12 10:31:35 -04:00
Brad King
3677389eaf Merge branch 'release-3.31' 2025-06-12 10:22:49 -04:00
Brad King
7e0388220f Merge branch 'release-3.31' into release-4.0 2025-06-12 10:22:32 -04:00