Commit Graph

60800 Commits

Author SHA1 Message Date
Eisuke Kawashima
6d48f48d5d FetchContent: Bump documented example Catch2 to v3.0.1
The previous Catch2 v2.13.4 does not compile on some platforms [1].

[1] https://github.com/catchorg/Catch2/issues/2326
2023-02-07 10:54:25 -05:00
Brad King
26f962f8b1 Merge branch 'release-3.25' into release-3.26 2023-02-07 09:33:52 -05:00
Brad King
5d40cf45fa Merge topic 'android-ndk-legacy-toolchain' into release-3.26
cb0b9452e8 Android: Provide CMAKE_ANDROID_NDK_VERSION with NDK legacy toolchain file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8170
2023-02-07 09:32:19 -05:00
Brad King
c323d446d6 Merge topic 'cxxmodules-proper-mangling' into release-3.26
3f1e005067 Tests/RunCMake/CXXModules: declare `forwarding` as `extern "C++"`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8159
2023-02-07 09:01:53 -05:00
Brad King
7aee115ff4 Merge topic 'FindCUDAToolkit-nvrtc-builtins' into release-3.26
9688a8ebc2 FindCUDAToolkit: Fix `nvrtc_builtins_static` library name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8162
2023-02-07 09:00:35 -05:00
Brad King
33a30da3da Merge topic 'docexe' into release-3.26
1e95f765d5 Help: Clarify interaction of execute_process *_FILE and *_VARIABLE options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8165
2023-02-07 08:58:48 -05:00
Brad King
94804e55f5 Merge topic 'docfix' into release-3.26
d3ece40602 Help: cmake (1): remove -E server as not available
b19036d8b3 Help: CheckSource{Compiles,Runs}: fix typo and clarify

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8164
2023-02-07 08:57:45 -05:00
Brad King
e3593a7a9f Merge topic 'ci-docker-layers' into release-3.26
354fdf2116 ci: Reduce intermediate docker layers and final image size

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8145
2023-02-07 08:56:35 -05:00
Brad King
29dc3e7722 Merge branch 'android-ndk-legacy-toolchain' into release-3.25
Merge-request: !8170
2023-02-06 17:27:48 -05:00
Brad King
cb0b9452e8 Android: Provide CMAKE_ANDROID_NDK_VERSION with NDK legacy toolchain file
This variable has been provided since commit 746906242d (Android: Detect
NDK version number, 2021-02-26, v3.20.0-rc3~1^2~3) when using CMake's
NDK support or the modern NDK toolchain file.  Since commit 005e2cdfb0
(Android: Do not use gold for ndk >= r22, 2021-02-26, v3.20.0-rc3~1^2)
we need the value in our compiler/platform information files, so provide
it when using the NDK legacy toolchain file too.

Revert commit 1c86e397fe (Android/Clang: Tolerate undefined
CMAKE_ANDROID_NDK_VERSION, 2022-09-16, v3.25.0-rc1~118^2) since the
variable should now always be defined.

Issue: #21772
Fixes: #24386
2023-02-06 17:17:25 -05:00
Alex Turbov
354fdf2116 ci: Reduce intermediate docker layers and final image size
Instead of `COPY` to get tar files, execute `RUN` w/ `--mount`.
Note that this requires the docker "buildkit" feature to be enabled.
2023-02-06 10:13:06 -05:00
scivision
d3ece40602 Help: cmake (1): remove -E server as not available
... since CMake 3.20
2023-02-06 09:57:57 -05:00
scivision
b19036d8b3 Help: CheckSource{Compiles,Runs}: fix typo and clarify 2023-02-06 09:55:23 -05:00
scivision
1e95f765d5 Help: Clarify interaction of execute_process *_FILE and *_VARIABLE options
These parameters are so important that it's worthwhile to be more
explicit about their interaction.

Fixes: #24392
2023-02-06 09:47:52 -05:00
Paul Taylor
9688a8ebc2 FindCUDAToolkit: Fix nvrtc_builtins_static library name
Update the change from commit 2a94c762ed (FindCUDAToolkit: Add support
for CUDA::nvrtc_static, 2023-01-20, v3.26.0-rc1~55^2).  The lib is named
`libnvrtc-builtins_static.a`, not `libnvrtc_builtins_static.a`.
2023-02-06 09:36:43 -05:00
Ben Boeckel
3f1e005067 Tests/RunCMake/CXXModules: declare forwarding as extern "C++"
It is not part of any module, so it needs to be declared as such.
2023-02-03 15:54:11 -05:00
Brad King
2a0c105cf0 CMake 3.26.0-rc1 2023-02-02 13:20:23 -05:00
Brad King
371417f4b0 Merge topic 'modules-lang-specific-target-linked-dirs' into release-3.26
13810dee17 cmDependsFortran: require that dependency info files work
eed295fd8a cmGlobalNinjaGenerator: require that dependency info files work
837f7c113a cmCommonTargetGenerator: classify linked target directories by language
d19648a928 cmGeneratorTarget: add a method to query if Fortran sources exist
245a89d8b6 cmMakefileTargetGenerator: make "target linked info" variable Fortran-specific
aeb1b2ae3d cmMakefileTargetGenerator: simplify string streaming

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8146
2023-02-02 11:46:44 -05:00
Brad King
c01d01646a Begin 3.26 release versioning 2023-02-01 14:43:09 -05:00
Brad King
e5fee37101 Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2023-02-01 14:42:26 -05:00
Brad King
2d5675e4fa Merge topic 'doc-3.26-relnotes'
385435cf78 Help: Organize and revise 3.26 release notes
4c63f031c1 Help: Consolidate 3.26 release notes
bc1ba6d56b Help: Document experimental feature gate affecting CXX_SCAN_FOR_MODULES
71f9c1943d FindImageMagick: Fix documentation syntax in usage example

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8148
2023-02-01 14:41:03 -05:00
Brad King
385435cf78 Help: Organize and revise 3.26 release notes
Add section headers similar to the 3.25 release notes and move each
individual bullet into an appropriate section.  Revise a few bullets.

Add a bullet for `FindImageMagick` that was accidentally left out
when its changes were made.
2023-02-01 14:02:17 -05:00
Brad King
4c63f031c1 Help: Consolidate 3.26 release notes
Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/3.26.rst`.
2023-02-01 13:58:23 -05:00
Brad King
bc1ba6d56b Help: Document experimental feature gate affecting CXX_SCAN_FOR_MODULES
Also drop the release note for `CXX_SCAN_FOR_MODULES`, as the rest of
the C++ modules support has not yet been mentioned in release notes
(since it is still experimental).
2023-02-01 13:58:23 -05:00
Brad King
71f9c1943d FindImageMagick: Fix documentation syntax in usage example 2023-02-01 13:58:23 -05:00
Brad King
8ec1c9ab6a Merge topic 'configure-log'
5252c88569 try_compile: Record propagated CMake variables in configure log
0a48d8fe5c ConfigureLog: De-duplicate event backtrace and check key generation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8140
2023-02-01 11:47:46 -05:00
Brad King
5252c88569 try_compile: Record propagated CMake variables in configure log
These provide more detailed information about how the test project was
configured.

Issue: #23200
2023-02-01 09:32:42 -05:00
Brad King
0a48d8fe5c ConfigureLog: De-duplicate event backtrace and check key generation
All event kinds have these fields, so centralize their implementation.
2023-02-01 09:32:42 -05:00
Brad King
e86bebfd14 Merge topic 'update-kwsys'
11d59c9ed6 Merge branch 'upstream-KWSys' into update-kwsys
187389d9e1 KWSys 2023-02-01 (cafea4c8)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8147
2023-02-01 09:31:34 -05:00
Ben Boeckel
13810dee17 cmDependsFortran: require that dependency info files work
Now that only targets expected to have information are listed, all
`DependInfo.cmake` files should exist.
2023-02-01 09:13:51 -05:00
Brad King
11d59c9ed6 Merge branch 'upstream-KWSys' into update-kwsys
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2023-02-01 (cafea4c8)
2023-02-01 09:12:57 -05:00
KWSys Upstream
187389d9e1 KWSys 2023-02-01 (cafea4c8)
Code extracted from:

    https://gitlab.kitware.com/utils/kwsys.git

at commit cafea4c84a581703c4bed5c725c421611c4bf358 (master).

Upstream Shortlog
-----------------

Brad King (1):
      5df8c0a1 RegularExpression: Extend max paren groups from 10 to 32
2023-02-01 09:12:56 -05:00
Ben Boeckel
eed295fd8a cmGlobalNinjaGenerator: require that dependency info files work
Now that only targets expected to have information are listed, all
`<LANG>Modules.json` files should exist.
2023-02-01 09:12:49 -05:00
Brad King
0292cf3c96 Merge topic 'xcode-header-search'
8527f42b96 Xcode: Explicitly disable deprecated user include path feature

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8143
2023-02-01 09:11:45 -05:00
Brad King
b2ceca6553 Merge topic 'doc-ipo'
d7c60ab6b0 Help: mark the directory properties INTERPROCEDURAL_OPTIMIZATION as deprecated
6ed026592e Help: improve docs for INTERPROCEDURAL_OPTIMIZATION target property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8141
2023-02-01 09:10:38 -05:00
Brad King
ce0139a1df Merge topic '_hm_swift_threads_pthread'
d7963aa9ee FindThreads: Filter -pthread out for compatibility with Swift linker

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8142
2023-02-01 09:09:52 -05:00
Brad King
a58b0baca2 Merge topic 'cmTarget-refactorings'
33f629184f cmTarget: simplify `CheckLinkLibraryPattern`
22b9ce73e7 cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE usage requirements
332d2f8f52 cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT usage requirements
15eec07500 cmTarget: refactor INTERFACE_LINK_LIBRARIES usage requirements
e80689d101 cmTarget: refactor LINK_LIBRARIES usage requirements
4f009d2121 cmTarget: refactor LINK_DIRECTORIES usage requirements
99e783e735 cmTarget: refactor LINK_OPTIONS usage requirements
fd295dd263 cmTarget: refactor SOURCES usage requirements
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8127
2023-02-01 09:07:58 -05:00
Brad King
29d19e0e5a Merge topic 'cmTarget-property-grouping'
a7c29f3ebd cmTarget: use static string views for per-config properties
47315d817c cmTarget: group remaining properties
32d21f215f cmTarget: put build graph-related properties into a group
6f9821d179 cmTarget: put static analysis (co-compile) properties in a group
ead9ff61f9 cmTarget: put linking-related properties in a group
9bb824a237 cmTarget: put compile-related properties in a group

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8135
2023-02-01 09:07:06 -05:00
Brad King
6b2c52b25b Merge topic 'ccg-index-type'
91a26ce041 cmComputeComponentGraph: use `size_t` for component indices
65c0a64dc5 cmComputeComponentGraph: use a name for "invalid component"
50abdaab93 IWYU: exclude `__decay_and_strip<int>` as well

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8128
2023-02-01 09:06:07 -05:00
Kitware Robot
4e9db2a8fa CMake Nightly Date Stamp 2023-02-01 00:01:16 -05:00
Ben Boeckel
837f7c113a cmCommonTargetGenerator: classify linked target directories by language
These directories are used to direct collators for Fortran and C++
modules to consume dependent module information to properly collate.
However, the consumption of these files merely checks for existence of
the file, not whether they are actually needed anymore.

The problem arises when a target has Fortran or C++ modules at point A,
a build occurs populating this file, and then the target is updated to
no longer have potential modules. The `DependInfo.make` (for
`Makefiles`) or `<LANG>DependInfo.json` (for `Ninja`) files still exist
as they are never guaranteed to be cleaned up. This can introduce stale
information to the build which may cause a false-positive compilation if
a module file happens to still exist and gets found this way.

Instead, query the `linked-target-dirs` using the language in question
and only add the directory if it contains potential sources for modules
coming from the language in question.
2023-01-31 22:34:29 -05:00
Ben Boeckel
d19648a928 cmGeneratorTarget: add a method to query if Fortran sources exist 2023-01-31 22:23:36 -05:00
Ben Boeckel
245a89d8b6 cmMakefileTargetGenerator: make "target linked info" variable Fortran-specific
This variable is Fortran-specific, so clarify that through its name.
2023-01-31 22:23:36 -05:00
Ben Boeckel
aeb1b2ae3d cmMakefileTargetGenerator: simplify string streaming 2023-01-31 22:23:36 -05:00
Brad King
8527f42b96 Xcode: Explicitly disable deprecated user include path feature
The `ALWAYS_SEARCH_USER_PATHS` feature is documented [1] to search the
paths in `USER_HEADER_SEARCH_PATHS` before `HEADER_SEARCH_PATHS`.  The
behavior has been long discouraged and was deprecated by Xcode 8.3.
Furthermore, Xcode explicitly disables this setting when creating new
projects.  We can do that too since we do not generate any user header
search paths anyway.

Previously we always set `USE_HEADERMAP` to `NO` to prevent Xcode's
warning about an ancient "header map" feature deprecation.  However,
this somehow breaks Xcode 14's "Build Documentation" feature.  Setting
`ALWAYS_SEARCH_USER_PATHS` to `NO` seems to prevent the header map
warning too, so drop `USE_HEADERMAP` to fix the documentation feature.

[1] https://developer.apple.com/documentation/xcode/build-settings-reference

Fixes: #24379
2023-01-31 14:21:20 -05:00
Ben Boeckel
33f629184f cmTarget: simplify CheckLinkLibraryPattern
Now that usage properties have more of a representation, the function
can just take the requirement directly.
2023-01-31 10:07:02 -05:00
Ben Boeckel
22b9ce73e7 cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel
332d2f8f52 cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel
15eec07500 cmTarget: refactor INTERFACE_LINK_LIBRARIES usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel
e80689d101 cmTarget: refactor LINK_LIBRARIES usage requirements 2023-01-31 10:07:02 -05:00