Commit Graph

15156 Commits

Author SHA1 Message Date
Brad King
ecd4e0ff16 FindJasper: Fix importing Release and Debug configurations together
In commit 6e8754c625 (FindJasper: Add IMPORTED target, 2021-10-06,
v3.22.0-rc1~20^2) we set `IMPORTED_LOCATION` for both.  Instead,
set `IMPORTED_LOCATION_{RELEASE,DEBUG}`.

Issue: #20601
Reported-by: Craig Scott <craig.scott@crascit.com>
2025-05-07 09:51:17 -04:00
Brad King
d182ad0a90 Merge topic 'FindJasper-no-jpeg'
324ab428fa FindJasper: Do not require JPEG libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10750
2025-05-07 09:46:43 -04:00
Brad King
b613318b80 Merge topic 'patch-GenerateExportHeader-module-path'
ac9585e13f GenerateExportHeader: Use CMAKE_CURRENT_FUNCTION_LIST_DIR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10749
2025-05-07 09:43:27 -04:00
Brad King
b7a013af51 Merge topic 'patch-GenerateExportHeader'
12ec3270c4 GenerateExportHeader: Extend documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10747
2025-05-07 09:41:39 -04:00
Brad King
324ab428fa FindJasper: Do not require JPEG libraries
Jasper can be built without a dependency on JPEG.  Also, we have not
been expressing the dependency on the `Jasper::Jasper` imported target
anyway.

Fixes: #26915
2025-05-06 16:53:50 -04:00
Peter Kokot
ac9585e13f GenerateExportHeader: Use CMAKE_CURRENT_FUNCTION_LIST_DIR
This replaces CMake variable _GENERATE_EXPORT_HEADER_MODULE_DIR defined
on the module inclusion and uses CMAKE_CURRENT_FUNCTION_LIST_DIR to get
the module directory, so the module can be more flexibly included in
projects not worrying about the variable scopes of where
include(GenerateExportHeader) and generate_export_header() are called.
2025-05-06 18:14:16 +02:00
Brad King
015cada32d Merge topic 'patch-FindProtobuf'
1bdb0ee1b8 FindProtobuf: Deprecate protobuf_generate_*() and update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10742
2025-05-06 09:43:34 -04:00
Brad King
78f2007349 Merge topic 'no-version-2.x-changes'
af432bf582 Modules/FindTCL: Remove most "Changelog" content
29f13ef7c5 Modules/FindKDE3: Remove info on `KDE3_ENABLE_FINAL`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10744
2025-05-06 09:41:07 -04:00
Peter Kokot
12ec3270c4 GenerateExportHeader: Extend documentation
- Added a quick module introduction.
- Used "commands" instead of "functions".
- Listed macro names with short descriptions.
- Described command arguments as a list separately and moved code
  examples to a dedicated section.
- Added examples section with extended examples demonstrating how to use
  this module.
- Updated the description of the deprecated add_compiler_export_flags()
  command and added example showing how to upgrade code when
  encountering it.
- Added "See Also" section with some related links.
2025-05-06 02:52:01 +02:00
Brad King
805a40b668 Optionally exclude implicit link libraries via environment
CMake detects libraries that the compiler driver implicitly passes to
the linker, and stores them in `CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES`
for use in constructing mixed-language link lines.  Some compiler driver
flags add implicitly linked libraries that should not be used during
mixed-language linking because they are handled by similar flags passed
to the other language's compiler driver.  Add an environment variable
that users can set to avoid undesired implicit link libraries in such
scenarios.

Follow the pattern from commit 023de565d3 (Optionally exclude implicit
link directories via environment, 2023-05-25, v3.27.0-rc1~54^2).

Fixes: #26911
2025-05-05 12:12:44 -04:00
Peter Kokot
1bdb0ee1b8 FindProtobuf: Deprecate protobuf_generate_*() and update documentation
This deprecates the protobuf_generate_cpp() and protobuf_generate_python()
commands because the protobuf_generate() can work for both of these
cases and provides more options. Also, upstream Protobuf CMake-based
build system has marked these two commands as legacy and requires
setting a separate protobuf_MODULE_COMPATIBLE variable to boolean true
before calling the find_package(Protobuf).

Changes:
- Reworded and synced module documentation with other similar find
  modules.
- Imported targets moved to top.
- Moved examples to a separate section.
- Extended examples with basic usage and some quick hints how to upgrade
  deprecated commands to protobuf_generate().
- Used lowercase style of commands.
- Used "commands" instead of "functions" or "macros".
- Documented the DESCRIPTORS argument for protobuf_generate() command
  and added a note that this option is not available when Protobuf is
  found in config mode.
- Added a note about the Protobuf CMake-based build system and that
  probuf_generate*() commands might come from the upstream CMake config
  files. Mentioned also the protobuf_MODULE_COMPATIBLE variable from
  upstream CMake build system.
  See #21228.
  This fixes this issue in favor of #24321 which tracks further
  progress about Protobuf.
- Documented the missing `PROTOBUF_GENERATE_CPP_APPEND_PATH` variable.
  See #19968.

Issue: #24321
Fixes: #21228
Fixes: #19968
2025-05-05 09:33:32 -04:00
Brad King
33aa1ec831 Merge topic 'patch-FindGettext'
c13351533d FindGettext: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10735
2025-05-05 08:58:57 -04:00
Brad King
8c7ab4e1e6 Merge topic 'asm-no-msvc'
14212494bb ASM: Guard exclusion of MSVC C/CXX compiler with a policy

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10740
2025-05-05 08:55:20 -04:00
FeRD (Frank Dana)
af432bf582 Modules/FindTCL: Remove most "Changelog" content
Remove documentation of variables or functionality that used to be
provided prior to CMake 2.6.

Fixes: #26865
2025-05-04 10:21:42 -04:00
FeRD (Frank Dana)
29f13ef7c5 Modules/FindKDE3: Remove info on KDE3_ENABLE_FINAL
The variable was still listed as deprecated since CMake 2.4.8,
documentation, but was actually removed long ago.

Fixes: #26865
2025-05-04 10:21:42 -04:00
Brad King
14212494bb ASM: Guard exclusion of MSVC C/CXX compiler with a policy
Since commit 6baf65ec46 (ASM: Do not consider MSVC C/CXX compiler for
generic ASM, 2025-04-08) we no longer mistake `cl` for an assembler.
However, some projects unconditionally enable ``ASM``, which worked
on Windows only due to that bug.  Restore compatibility with such
projects by guarding the change behind a new policy ``CMP0194``.

Fixes: #26907
Issue: #26617
2025-05-03 13:18:19 -04:00
Brad King
67f86c7db8 Merge topic 'clang-macos-sdk'
bf1bb62e74 macOS: Restore support for LLVM/Clang without explicit CMAKE_OSX_SYSROOT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10734
2025-05-03 10:02:18 -04:00
Brad King
4d096781c7 Merge topic 'cuda-12.9'
031593de25 Merge branch 'backport-cuda-12.9' into cuda-12.9
6458208a26 Merge branch 'backport-cuda-12.9' into cuda-12.9
a1b4c30f24 CUDA: Add CUDA 12.9 new architectures and family syntax
b2251e0deb CUDA/Clang: Update architectures supported by CUDA 12.8

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10738
2025-05-03 09:59:33 -04:00
Peter Kokot
c13351533d FindGettext: Update documentation
- Updated module documentation.
- The Gettext_FOUND variable used (CMake 3.3). Uppercased GETTEXT_FOUND
  is also set to the same value by find_package_handle_standard_args().
- Updated all commands and arguments descriptions according to the
  current implementation.
- Moved the gettext_process_po_files() command to top as it seems to
  be a bit more convenient for usage than other two.
- Renamed "functions" to "commands" as some of these are macros and some
  are functions. From the user PoV, knowing whether some module command
  is a macro or a function is mostly irrelevant.
- Added extended examples section showing some basic usage of the module
  commands.

Fixes #16034
2025-05-02 22:31:04 +02:00
Brad King
031593de25 Merge branch 'backport-cuda-12.9' into cuda-12.9 2025-05-02 16:16:06 -04:00
Robert Maynard
a1b4c30f24 CUDA: Add CUDA 12.9 new architectures and family syntax 2025-05-02 15:46:49 -04:00
Robert Maynard
b2251e0deb CUDA/Clang: Update architectures supported by CUDA 12.8 2025-05-02 15:46:06 -04:00
Brad King
bf1bb62e74 macOS: Restore support for LLVM/Clang without explicit CMAKE_OSX_SYSROOT
In commit 7b19531291 (macOS: Do not pass any SDK/-isysroot to compilers
by default, 2024-11-06, v4.0.0-rc1~511^2) we broke support for using
upstream LLVM/Clang to build for macOS because the compiler has no
default sysroot.  Handle empty `CMAKE_OSX_SYSROOT` with LLVM/Clang by
falling back to the macOS SDK reported by `xcrun --show-sdk-path` .

Fixes: #26863
2025-05-02 13:49:40 -04:00
Brad King
3c992e336b Merge topic 'patch-FindProtobuf-dependencies'
c375b3da9f FindProtobuf: Change protobuf_generate(DEPENDENCIES) argument to multi-value

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10733
2025-05-02 11:09:37 -04:00
Brad King
cb0cda350b Merge topic 'patch-FindHDF5'
8d45230141 FindHDF5: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10732
2025-05-02 11:08:30 -04:00
Brad King
74e677f62b Merge topic 'clang-libstdcpp-support'
5750fcd7b4 ci: enable `import_std23` module compilation with clang
52e2785018 experimental/CXXModules: recycle the UUID
28333c4516 Clang/CXXImportStd: support `-stdlib=libstdc++`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10727
2025-05-01 08:40:49 -04:00
Peter Kokot
c375b3da9f FindProtobuf: Change protobuf_generate(DEPENDENCIES) argument to multi-value
This is a sync with the upstream `protobuf_generate()` command which has
this argument provided as a multi-value argument as of Protobuf 6.30.0
version (`cmake/protobuf-generate.cmake`).
2025-05-01 05:43:29 +02:00
Peter Kokot
8d45230141 FindHDF5: Update documentation
- Synced module documentation with other similar find modules.
- Added examples section.
- Added and extended a separate components section.
- Reworded introduction to mention that this module first searches for
  the CMake package configuration and then falls back to the wrapper
  compiler usage to find HDF5.
- Added versionadded for HDF5_<LANG>_COMPILER_EXECUTABLE_NO_INTERROGATE
  variables (3.6).
2025-05-01 01:00:53 +02:00
Brad King
07a30dc075 Merge topic 'GNUInstallDirs-get-absolute-install-dir'
cc6dbd194c GNUInstallDirs: Cache CMAKE_INSTALL_* with leading usr/ for install prefix /
a7fcb1320c GNUInstallDirs: Make GNUInstallDirs_get_absolute_install_dir a function
03e796f9ab GNUInstallDirs: Move the common handler for `SYSCONFDIR` and `LOCALSTATEDIR`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10584
2025-04-30 09:52:43 -04:00
Brad King
cf54042a7c Merge topic 'externalproject-archive-types'
1cc85064ff ExternalProject: Remove explicit list of supported archive types
fb3757654e ExternalProject: Refactor local decompression test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10715
2025-04-30 09:51:15 -04:00
Brad King
ea9aa30551 Merge topic 'patch-FindBISON-FindFLEX'
c9d86e8beb FindFLEX: Update documentation
e0c4e8ecf4 FindBISON: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10723
2025-04-30 09:44:37 -04:00
Brad King
2e548a1513 Merge topic 'patch-Findosg'
3d97b95400 Findosg*: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10717
2025-04-30 09:43:20 -04:00
Ben Boeckel
28333c4516 Clang/CXXImportStd: support -stdlib=libstdc++
Fedora 42 ships `clang` with `libstdc++` as the default. Detect and
support `import std;` in this configuration.
2025-04-30 13:47:27 +02:00
Cristian Le
cc6dbd194c GNUInstallDirs: Cache CMAKE_INSTALL_* with leading usr/ for install prefix /
As a consequence, `GNUInstallDirs_get_absolute_install_dir` does not
alter the `var` argument (the relative path argument).

Closes: #26834
Signed-off-by: Cristian Le <git@lecris.dev>
2025-04-29 13:49:42 -04:00
Cristian Le
a7fcb1320c GNUInstallDirs: Make GNUInstallDirs_get_absolute_install_dir a function
Signed-off-by: Cristian Le <git@lecris.dev>
2025-04-29 18:05:50 +02:00
Cristian Le
03e796f9ab GNUInstallDirs: Move the common handler for SYSCONFDIR and LOCALSTATEDIR
Signed-off-by: Cristian Le <git@lecris.dev>
2025-04-29 18:05:50 +02:00
Brad King
ead4355b16 Merge topic 'cross-compile-macos'
eb8facd396 macOS: Avoid relying on sw_vers when cross-compiling from another OS
476b2a386f macOS: Remove outdated condition for CMAKE_OSX_DEPLOYMENT_TARGET

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10721
2025-04-29 11:25:51 -04:00
Javier Martín
1cc85064ff ExternalProject: Remove explicit list of supported archive types
- Do not try to guess the flags to pass to "cmake -E tar" ("z" or not) based
  on the extension. It is not necessary, as the archive type is autodetected
  since we switched to libarchive.
- Add new tests for .tar.zst archives, which would fail without the change.

Fixes: #25062
2025-04-29 11:22:13 -04:00
Brad King
3cf3980582 Merge topic 'patch-FindGTK'
e4554c0f16 FindGTK*: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10718
2025-04-29 11:20:28 -04:00
Brad King
9dcb87f87a Merge topic 'patch-FindXCTest'
72e5ebcbd3 FindXCTest: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10719
2025-04-29 11:06:04 -04:00
Brad King
2cdcf68235 Merge topic 'patch-FindMFC'
bc9faec5e5 FindMFC, CMAKE_MFC_FLAG: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10720
2025-04-29 11:04:19 -04:00
Peter Kokot
c9d86e8beb FindFLEX: Update documentation
- Updated and synced module documentation with other similar find
  modules.
- Used lowercase style for commands across the docs.
- Commands documented with indentation.
- Command arguments described as a list separately.
- Used "commands" instead of "macros".
- Extended examples section.
- Added example showing how to use found Flex library by creating an
  imported target inside a project. Fixes: #18718
2025-04-29 06:33:47 +02:00
Peter Kokot
e0c4e8ecf4 FindBISON: Update documentation
- Updated and synced module documentation with other similar find
  modules.
- Documented bison_target() command indented relative to the title.
- Command arguments described as a list separately.
- Used "command" instead of "macro".
- Used lowercase style across the docs.
- Extended examples section.
2025-04-29 06:18:15 +02:00
Peter Kokot
3d97b95400 Findosg*: Update documentation
- Modules documentation updated and synced.
- Internal comments about headers moved to the modules introduction
  section.
- Added examples sections.
- Used the `<PackageName>_FOUND` variables (CMake 3.3). The uppercased
  `<PACKAGENAME>_FOUND` are also set to the same value.
- Mention of CMake 2.6.3 removed as these version notes are now being
  cleaned in the CMake 4 documentation (CMake docs are at this point
  considering the 2.8.12.2 as the initial state upon which new and
  changed items are documented through versions).
- Added notes that these modules are not intended anymore to be used
  directly except for advanced case scenarios. The FindOpenSceneGraph
  module should be used.
- Fixed osgQt description in FindOpenSceneGraph and synced it a bit.
2025-04-28 19:01:09 +02:00
Brad King
054f05fd01 Merge topic 'iar-cstat-binutils'
6e6a1e472b IAR: Add the C-STAT tools to CMakeFindBinUtils

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10714
2025-04-28 11:16:57 -04:00
Brad King
b5670654e5 Merge topic 'patch-FindOpenSceneGraph'
134095a4b3 FindOpenSceneGraph: Update documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10707
2025-04-28 11:15:45 -04:00
Brad King
eb8facd396 macOS: Avoid relying on sw_vers when cross-compiling from another OS
We have a few code paths needed only to support builds hosted on
macOS 10.4.  Update the conditions to work when cross-compiling
to macOS from another platform.

Fixes: #26814
2025-04-28 08:53:01 -04:00
Brad King
476b2a386f macOS: Remove outdated condition for CMAKE_OSX_DEPLOYMENT_TARGET
Revert commit 2853326e7a (BUG: Only set CMAKE_OSX_DEPLOYMENT_TARGET on
Mac OSX 10.4 or later, 2009-01-27, v2.8.0~1169).  AFAIK no one is using
macOS versions older than 10.4 anymore.
2025-04-28 08:37:33 -04:00
Peter Kokot
bc9faec5e5 FindMFC, CMAKE_MFC_FLAG: Update documentation
FindMFC:
- Synced module documentation with other similar find modules.
- Added examples section.
- Added reference link to CMAKE_MFC_FLAG variable.

CMAKE_MFC_FLAG:
- Added separate examples section.
- Mentioned FindMFC module.
- Used target_compile_definitions() instead of add_definitions().
2025-04-28 02:36:29 +02:00
Peter Kokot
72e5ebcbd3 FindXCTest: Update documentation
- Module documentation synced with other similar find modules.
- Added examples section.
- Added note about Swift Testing framework, which supersedes the XCTest.
- Added note about the XCTEST target property and synced docs a bit.
- Used word "commands" instead of "macros" or "functions".
2025-04-28 00:12:14 +02:00