Commit Graph

8716 Commits

Author SHA1 Message Date
Ben Boeckel
b53837a1bd prop_sf/INSTALL_OBJECT_NAME: support custom install object names
These can support configuration-dependent queries much more easily, so
separate it out.
2025-09-09 09:58:07 -04:00
Ben Boeckel
84372ce0b5 prop_sf/OBJECT_NAME: no-op for the FASTBuild and Xcode generators
There's no control over the object base name implemented in the
FASTBuild generator. Rather than expecting some half-supported behavior,
just ignore it completely there.

Similarly, Xcode ends up making its own object paths internally
regardless of what CMake would like.
2025-09-09 09:58:07 -04:00
Ben Boeckel
9ef99353cb prop_sf/OBJECT_NAME: support custom object names
Projects which ship object files as artifacts may want to control the
object names as much as possible. Support setting explicit object names
as source file properties to support such use cases.
2025-09-09 09:58:07 -04:00
Brad King
a3a3416bc1 Merge topic 'install-object-only-destination'
c1de3c72a3 install: support using `DESTINATION` as-is for object installation
cf44806e7c Help/CMAKE_INSTALL_OBJECT_NAME_STRATEGY: add `versionadded` directive

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11138
2025-09-08 11:32:05 -04:00
Brad King
bf1841534c Merge topic 'cpack-several-checksums'
bc1c295b95 CPack: Add support for multiple checksums per package

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11141
2025-09-08 11:29:34 -04:00
Ben Boeckel
c1de3c72a3 install: support using DESTINATION as-is for object installation
CMake historically has forced an `objects[-<CONFIG>]/<TARGET_NAME>`
subdirectory under an `OBJECT` library installation's `OBJECTS
DESTINATION` which may be unwanted. Support skipping this component
with a target property.
2025-09-06 00:44:42 -04:00
Brad King
58bde95a0a Merge topic 'instrumentation-rename-hooks'
7c13444fb5 Experimental: Update the Instrumentation UUID
fbb5b47fbf instrumentation: Rename postTest and postInstall hooks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11148
2025-09-05 09:55:05 -04:00
Brad King
032b091c3e Merge topic 'unity-filename-prefix'
5723e65215 Unity: Add a target property to control generated filenames

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11068
2025-09-05 09:18:26 -04:00
Brad King
80e76ff643 Merge topic 'cpack-appimage'
1a6dbcc9ea CPack: Add AppImage generator
9f2949bc68 ci: Add script to install appimagetool in Linux jobs
069f858f42 ci: Add patchelf and appstream to Fedora base image

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10990
2025-09-05 08:58:45 -04:00
Sergiu Deitsch
bc1c295b95 CPack: Add support for multiple checksums per package
Closes: #27174
2025-09-05 08:42:17 -04:00
Tyler Yankee
7c13444fb5 Experimental: Update the Instrumentation UUID
Update experimental UUID for instrumentation after commit fbb5b47fbf
(instrumentation: Rename postTest and postInstall hooks, 2025-09-04)
broke old hook names.
2025-09-04 14:01:17 -04:00
Tyler Yankee
fbb5b47fbf instrumentation: Rename postTest and postInstall hooks
`postCTest` and `postCMakeInstall` are more closely aligned with the
corresponding snippets which cause cause them to trigger (`ctest` and
`cmakeInstall`, respectively), and as such serve as better indicators of
their true behavior.
2025-09-04 12:39:39 -04:00
Stephen Kennedy
5723e65215 Unity: Add a target property to control generated filenames
If not set default to `unity_` as before.

Closes: #26927
2025-09-04 09:31:01 -04:00
Brad King
89f4471c4c Merge topic 'fbuild_additional_props'
a8e64742aa FASTBuild: allow disabling of caching / distribution

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11125
2025-09-04 09:19:30 -04:00
Brad King
d75c507d0a Merge topic 'instrumentation-trace'
8d04c4d741 Experimental: Update the Instrumentation UUID
bf52fbfbc4 instrumentation: Add Google trace output
b6dcbc4387 Tests/RunCMake/Instrumentation: Improve formatting
27bc7d5782 Tests/RunCMake/Instrumentation: Factor out common JSON logic

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !11124
2025-09-04 09:15:59 -04:00
Daniel Nicoletti
1a6dbcc9ea CPack: Add AppImage generator
This AppImage generator only relies on appimagetool and patchelf.

Closes: #27104
Co-authored-by: Brad King <brad.king@kitware.com>
2025-09-03 18:50:40 -04:00
Tyler Yankee
8d04c4d741 Experimental: Update the Instrumentation UUID
Update experimental UUID for instrumentation after commit bf52fbfbc4
(instrumentation: Add Google trace output, 2025-08-28) introduced a
significant feature.
2025-09-03 15:24:40 -04:00
Tyler Yankee
bf52fbfbc4 instrumentation: Add Google trace output
Add a feature to parse snippets into a trace file compatible with the
Google Trace Event Format.

Fixes: #26674
2025-09-03 15:24:10 -04:00
Eduard Voronkin
a8e64742aa FASTBuild: allow disabling of caching / distribution
Compilation is complicated. Caching / distribution is even more
complicated. Sometimes there are bugs (in compilers as well as in
FASTBuild), so export the option to disable those features for CMake
targets.
2025-09-03 12:42:55 -04:00
Martin Duffy
903d35353f instrumentation: Update tests and documentation for FASTBuild support
Fixes: #27184
2025-09-03 10:49:51 -04:00
Ben Boeckel
cf44806e7c Help/CMAKE_INSTALL_OBJECT_NAME_STRATEGY: add versionadded directive 2025-09-03 10:30:47 -04:00
Brad King
c3bdb07a94 Merge topic 'document_find_package_dir_version'
f104bdb3b9 Help: Specify `<PackageName>_DIR` interaction with a version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11114
2025-09-01 14:37:50 -04:00
Brad King
d65cd65df5 Merge topic 'patch-find-modules-versions'
f0b4c19052 FindIcotool: Add Icotool_VERSION
f503c8dad4 FindHSPELL: Add HSPELL_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11098
2025-09-01 14:36:24 -04:00
Brad King
230c5c7d46 Merge topic 'patch-FindOpenCL-version'
870fd818a3 FindOpenCL: Add OpenCL_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11108
2025-09-01 14:31:02 -04:00
Brad King
bf46c263f8 Merge branch 'release-4.1' 2025-08-27 13:32:32 -04:00
Brad King
ba8c4a15f1 CMake 4.1.1 2025-08-27 12:33:28 -04:00
Brad King
985bbf724a Merge topic 'fbuild'
94113ac687 ci: Add jobs for FASTBuild generator on Linux, macOS, and Windows
01147454e7 FASTBuild: Add generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Osyotr <zhenchik35026@gmail.com>
Acked-by: Peter Kokot <peterkokot@gmail.com>
Merge-request: !10941
2025-08-27 11:43:37 -04:00
Brad King
2981a064f4 Merge topic 'patch-FindwxWidgets-wxWidgets_USE_FILE'
4f9a8c8aa1 FindwxWidgets: Deprecate wxWidgets_USE_FILE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11110
2025-08-27 11:36:21 -04:00
Brad King
4af2db6ad9 Merge topic 'patch-FindQt3-version'
34a4b39cf3 FindQt3: Add Qt3_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11107
2025-08-27 11:35:02 -04:00
Brad King
7f431ff6b4 Merge topic 'patch-FindTclsh-version'
f9fec08e69 FindTclsh: Add Tclsh_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11103
2025-08-27 11:29:31 -04:00
Brad King
7212282f02 Merge topic 'patch-FindPkgConfig-found-var'
9e3d2cd94f FindPkgConfig: Deprecate PKG_CONFIG_FOUND

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11099
2025-08-27 11:16:46 -04:00
Brad King
f156d7fa1f Merge topic 'FindPython-NumPy-target'
0a4a4d2053 FindPython: NumPy target does not depend on Development.Module

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !11093
2025-08-27 11:10:59 -04:00
Brad King
e804896981 Merge topic 'instrumentation-configure-content'
451e2cb2a1 instrumentation: Add cmake_instrumentation check to ctest_instrumentation test
e6b37105ba instrumentation: Collect custom content from CMake configure

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10988
2025-08-27 11:02:21 -04:00
Eduard Voronkin
01147454e7 FASTBuild: Add generator
Fixes: #15294
2025-08-26 14:29:01 -07:00
Meszaros, Gergely
f104bdb3b9 Help: Specify <PackageName>_DIR interaction with a version
Explicitly state that if `<PackageName>_DIR` is set, but the version of
the package found there does not match the requested version, then
`find_package` will ignore that directory and continue searching.
2025-08-26 08:27:15 +00:00
Peter Kokot
870fd818a3 FindOpenCL: Add OpenCL_VERSION
- This deprecates the OPENCL_VERSION_STRING result variable.
- Documentation adjusted.
- Support for OpenCL 3.0 was added in CMake 3.24.
- Added CL_TARGET_OPENCL_VERSION compile definition to test so that
  program compiles without warnings.
- Additionally, on Apple systems compiler can't find <Headers/cl.h>
  unless direct path would be passed as a header. Instead, <OpenCL/cl.h>
  is used for version check conditionally.

Issue: #27088
2025-08-25 22:16:51 +02:00
Marc Chevrier
0a4a4d2053 FindPython: NumPy target does not depend on Development.Module
Fixes: #27123
2025-08-25 15:28:41 +02:00
Brad King
46fc0232ae Merge topic 'fix-get-mapped-config'
05ae95c864 cmTarget: Overhaul GetMappedConfig

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10995
2025-08-25 09:16:53 -04:00
Peter Kokot
4f9a8c8aa1 FindwxWidgets: Deprecate wxWidgets_USE_FILE
This variable in current CMake versions doesn't seem to be needed in any
case. Either if the UsewxWidgets is created in the project's own
CMAKE_MODULE_PATH location, or if FindwxWidgets is "forked" into project
own modules, include(UsewxWidgets) always includes the wanted file.
2025-08-25 01:52:40 +02:00
Peter Kokot
34a4b39cf3 FindQt3: Add Qt3_VERSION
This deprecates the QT_VERSION_STRING result variable.

The QT_VERSION_STRING was probably meant to be set also by FindQt4
module (for the deprecated FindQt) but at the time of writing isn't
implemented therefore replaced in the test.

Issue: #27088
2025-08-24 10:59:32 +02:00
Peter Kokot
f9fec08e69 FindTclsh: Add Tclsh_VERSION
This deprecates the TCLSH_VERSION_STRING result variable.

Issue: #27088
2025-08-22 23:10:09 +02:00
Martin Duffy
e6b37105ba instrumentation: Collect custom content from CMake configure
Add a `CUSTOM_CONTENT` argument to `cmake_instrumentation()` for collecting
custom content from configure time.

Snippet files include a reference to a JSON file containing any `CUSTOM_CONTENT`
that was added by this command.

Fixes: #26703
2025-08-21 07:20:12 -04:00
Peter Kokot
9e3d2cd94f FindPkgConfig: Deprecate PKG_CONFIG_FOUND
Since most of the find modules use the `<PackageName>_FOUND` result
variables, this now also syncs it for the FindPkgConfig module. The
`PkgConfig_FOUND` result variable is available since CMake 3.3 and
contains the same value. There is also `PKGCONFIG_FOUND` result variable
automatically set with the same value but for simplicity isn't
documented. The uppercased `<PACKAGENAME>_FOUND` result variables set by
find modules are also considered legacy variables.
2025-08-21 01:01:33 +02:00
Peter Kokot
f0b4c19052 FindIcotool: Add Icotool_VERSION
This deprecates the ICOTOOL_VERSION_STRING result variable.

Issue: #27088
2025-08-20 23:32:53 +02:00
Peter Kokot
f503c8dad4 FindHSPELL: Add HSPELL_VERSION
This deprecates the HSPELL_VERSION_STRING result variable.

Additionally, fixed typos:
* HSPELL_VERSION_MAJOR
* HSPELL_VERSION_MINOR

Issue: #27088
2025-08-20 23:31:41 +02:00
Matthew Woehlke
05ae95c864 cmTarget: Overhaul GetMappedConfig
Create a brand new implementation of `cmTarget::GetMappedConfig` which
prioritized a target's `IMPORTED_CONFIGURATIONS` as the 'source of
truth' for what configurations are available. In particular, this means
that configuration selection when `IMPORTED_CONFIGURATIONS` is set does
not depend on the library type in any manner. The fallback logic also
uses a more consistent 'usability' criteria that should result in more
consistent configuration selection, particularly for `INTERFACE`
targets.

The previous implementation is retained as a separate method for users
requesting the OLD behavior.

Fixes: #27022
2025-08-20 14:44:05 -04:00
Brad King
7d7b91717c Merge topic 'patch-FindPkgConfig-version'
13366e3045 FindPkgConfig: Add PkgConfig_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11089
2025-08-20 10:10:34 -04:00
Brad King
4dfc6d200b Merge topic 'patch-FindwxWidgets-version'
559500bede FindwxWidgets: Add wxWidgets_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11088
2025-08-20 10:06:12 -04:00
Brad King
2ec20fc2f8 Merge topic 'patch-FindHg-version'
e463cf3283 FindHg: Add Hg_VERSION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11083
2025-08-18 10:20:21 -04:00
Brad King
9567647e9b Merge topic 'debugger-docs'
9d93853405 Help: Add documentation for debugging with GDB

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10980
2025-08-18 09:51:58 -04:00