Commit Graph

7526 Commits

Author SHA1 Message Date
Brad King
1d519cf796 Merge topic 'ninja-parallel'
0e5250e63c Ninja: Add option for parallel install
daeb8fffa2 Help: Add Builtin Targets section to Ninja help

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9505
2024-05-24 10:29:57 -04:00
Martin Duffy
0e5250e63c Ninja: Add option for parallel install
Adds the global property ``INSTALL_PARALLEL`` to enable a parallel install
target for Ninja.

Fixes: #25459
2024-05-23 09:54:19 -04:00
Martin Duffy
daeb8fffa2 Help: Add Builtin Targets section to Ninja help 2024-05-22 16:07:35 -04:00
Brad King
c16acd35b3 GenEx: Add support for custom transitive link properties
Teach the `$<TARGET_PROPERTY:...>` generator expression to check for a
new `TRANSITIVE_LINK_PROPERTIES` property in the target's link
closure to enable transitive evaluation of named properties through
the link closure, including entries guarded by `$<LINK_ONLY:...>`.

Fixes: #20416
2024-05-21 09:22:52 -04:00
Brad King
b9ee79b8a1 GenEx: Add support for custom transitive compile properties
Teach the `$<TARGET_PROPERTY:...>` generator expression to check for a
new `TRANSITIVE_COMPILE_PROPERTIES` property in the target's link
closure to enable transitive evaluation of named properties through
the link closure, excluding entries guarded by `$<LINK_ONLY:...>`.

Issue: #20416
2024-05-21 09:22:51 -04:00
Brad King
af59289904 Help: Format TARGET_PROPERTY special evaluation rules as a definition list 2024-05-21 09:22:51 -04:00
Brad King
645ca62b1b Merge topic 'doc-macro'
67171a99be Help: Fix inaccurate use of "function" in macro docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Juan Ramos <juan.ramos@kitware.com>
Merge-request: !9534
2024-05-21 09:17:17 -04:00
Dave Abrahams
67171a99be Help: Fix inaccurate use of "function" in macro docs 2024-05-21 09:13:57 -04:00
Brad King
ba5a1be70a Merge topic 'typo-fix-issue'
ea544235e5 Tutorial: Fix grammar typo in Step 11

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9529
2024-05-20 19:05:35 -04:00
Brad King
f9b85f331e Merge topic 'cmp0097-fetchcontent'
eda17e76e2 Help: Document that CMP0097 is always NEW for FetchContent

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9527
2024-05-20 19:04:42 -04:00
Craig Scott
2d653179dc Merge topic 'fetchcontent-direct'
7bf15e49a8 ExternalProject: Fix misleading git update output
b2496bf14c FetchContent: Populate directly without a sub-build
173daad58d ExternalProject: Move more internal commands out of main file
462e583267 ExternalProject: Switch download, update and patch to use _EP_ vars
0ccc8e340d ExternalProject: Provide ExternalProject_Add keywords through a macro
91e1015722 ExternalProject: Don't treat YES as a keyword
a1743ce1ef ExternalProject: Fix minor formatting error

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !9513
2024-05-18 05:05:03 -04:00
FrankYin
ea544235e5 Tutorial: Fix grammar typo in Step 11
Fix and improve wording in the "Adding Export Configuration" step.
2024-05-17 11:25:39 -04:00
Craig Scott
eda17e76e2
Help: Document that CMP0097 is always NEW for FetchContent
Fixes: #25971
2024-05-17 14:49:53 +10:00
Craig Scott
b2496bf14c
FetchContent: Populate directly without a sub-build
Fixes: #21703
2024-05-17 14:23:39 +10:00
Brad King
3f28a819ce Merge topic 'LINK_LIBRARY-Feature-properties'
6e5e7968c3 GenEx $<LINK_LIBRARY>: Add the support of properties attached to features

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9510
2024-05-16 11:27:18 -04:00
Brad King
d37467e036 Merge topic 'custom-command-output-hash-character'
8d2a503c1e add_custom_command: Allow OUTPUT filenames containing a hash '#' character
b38000d774 cmGlobalXCodeGenerator: Re-implement legacy makefile path escaping
d929089687 cmGlobalXCodeGenerator: Do not use legacy makefile escaping in shell commands
d61fc2c52e cmGlobalXCodeGenerator: Migrate legacy makefile path escaping to local helper
6010e007c7 cmState: Add method to check for the Borland Makefiles generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9514
2024-05-16 11:24:56 -04:00
Glenn Coombs
8d2a503c1e add_custom_command: Allow OUTPUT filenames containing a hash '#' character
Most generators now support this character after escaping and quoting
cleanups over time.  Disallow it only on generators that do support it.

Fixes: #25604
2024-05-15 13:27:46 -04:00
Ben Boeckel
a46395df06 importstd: clarify when the experimental UUID must be available
Fixes: #25980
2024-05-15 07:15:05 -04:00
Marc Chevrier
6e5e7968c3 GenEx $<LINK_LIBRARY>: Add the support of properties attached to features
Fixes: #24504, #25954
2024-05-15 10:02:36 +02:00
Brad King
5d658ebcc6 Merge topic 'FindPython-WIN32-DEBUG'
c164404b2e FindPython: On Windows, Enhance python debug version support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: Osyotr <zhenchik35026@gmail.com>
Merge-request: !9482
2024-05-14 10:52:49 -04:00
Brad King
8aa598a0b7 Merge topic 'help-options'
fc2bce54c7 Help: try_compile how to pass compiler options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9512
2024-05-14 10:25:33 -04:00
Brad King
b56c083a54 Merge topic 'print-configure-generate-time'
29404cfd92 cmake: Capture more complete configure/generate steps in printed durations
f106df8f96 cmGlobalVisualStudio8Generator: Remove unused Configure method override

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !9508
2024-05-13 09:38:03 -04:00
Brad King
05d03c67fb Merge topic 'doc-TARGET_PROPERTY-unset'
d6bda72981 Help: Document TARGET_PROPERTY genex behavior on unset property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9506
2024-05-13 09:32:30 -04:00
scivision
fc2bce54c7
Help: try_compile how to pass compiler options
it wasn't obvious how to pass compiler options. Since the old
add_definitions() is used we can workaround this by passing
compiler options there.
2024-05-11 22:57:38 -04:00
Brad King
29404cfd92 cmake: Capture more complete configure/generate steps in printed durations
Extend the start/end times from commit 5f0c5ec49b (cmake: Print
configure/generate time, 2023-01-17, v3.26.0-rc1~67^2) to capture
generator-specific Configure/Generate actions, and the time spent
in the internal "Compute" step at the start of generation.

Fixes: #25482
2024-05-10 15:20:11 -04:00
Brad King
d6bda72981 Help: Document TARGET_PROPERTY genex behavior on unset property
Also add an explicit test for the case.

Fixes: #25968
2024-05-10 09:50:33 -04:00
betsy.mcphail
baf6a37ffa Tutorial: Set CPACK_GENERATOR in Step 9
In addition to CPACK_SOURCE_GENERATOR also set CPACK_GENERATOR.
2024-05-09 14:03:06 -04:00
Marc Chevrier
c164404b2e FindPython: On Windows, Enhance python debug version support
Add the following variables:
* Python_EXECUTABLE_DEBUG
* Python_INTERPRETER
* Python_DEBUG_POSTFIX

and target Python::InterpreterDebug.

python_add_library() command Manage DEBUG_POSTFIX target property based
on the value of Python_DEBUG_POSTFIX variable.

Fixes: #25874
2024-05-09 19:08:47 +02:00
Brad King
760ad9bcc7 Merge topic 'remove-vs9-generator'
03c31b0395 Drop Visual Studio 9 2008 generator
88c70dde34 cmGlobalVisualStudioGenerator: Use member 'Version' more directly
0bdcf1cb17 cmLocalVisualStudio7Generator: Make vfproj conditions more explicit
acc5ea7390 cmLocalVisualStudio7Generator: Reset per-target members after every target
252702bb35 cmVisualStudioGeneratorOptions: Order version check branches consistently

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !9496
2024-05-09 10:31:01 -04:00
Brad King
a6aac9b96d Merge topic 'cmake-module-path-example'
8763da8268 Help: Provide simple CMAKE_MODULE_PATH example

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9498
2024-05-09 10:30:10 -04:00
Brad King
03c31b0395 Drop Visual Studio 9 2008 generator
This generator has been deprecated since CMake 3.27.  Remove it.
2024-05-08 10:37:34 -04:00
Juan Ramos
8763da8268 Help: Provide simple CMAKE_MODULE_PATH example 2024-05-07 12:45:04 -07:00
Brad King
c3c00460b2 Help: Clarify TARGET_PROPERTY genex evaluation of transitive properties
Regularize and fill out a documentation pattern from commit ddb9442f48
(GenEx: Fix TARGET_PROPERTY evaluation of transitive link properties,
2024-04-22).
2024-05-07 13:46:29 -04:00
Brad King
9ec61c72e3 Help: Add intro text to cmake-buildsystem(7) build properties sections 2024-05-07 13:45:45 -04:00
Brad King
71c52c76fa Merge branch 'release-3.29' 2024-05-07 13:28:36 -04:00
Brad King
b39fb31bf4 CMake 3.29.3 2024-05-07 12:49:54 -04:00
Brad King
95e4efc451 Merge branch 'release-3.28' 2024-05-07 09:20:45 -04:00
Brad King
bef0d48fbb Merge branch 'release-3.28' into release-3.29 2024-05-07 09:20:30 -04:00
Brad King
9f7ec4c297 CMake 3.28.5 2024-05-07 08:42:47 -04:00
Brad King
557908ecfa Merge topic 'FindBoost-remove'
e0355c4ea9 FindBoost: Add policy to remove this module

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Christoph Grüninger <foss@grueninger.de>
Merge-request: !9488
2024-05-06 09:25:49 -04:00
Brad King
e300620a09 Help: Clarify cmake-buildsystem(7) compile properties section names
In commit 835f34949e (Help: Update cmake-buildsystem(7) build and usage
requirements, 2024-04-23) we labeled the sections documenting `COMPILE_*`
properties as "build properties".  All the properties it documents are
about compilation steps before linking, including the Autogen features
for compiling Qt metadata, so rename the sections as "compile properties".
This is also consistent with the name of the `$<COMPILE_ONLY:...>`
generator expression.
2024-05-03 12:07:40 -04:00
Brad King
e0355c4ea9 FindBoost: Add policy to remove this module
Upstream Boost 1.70 and above provide a proper `BoostConfig.cmake`
package configuration file.  Packages for all major distros now
provide it in at least one LTS release.  Add a policy to pretend
that the `FindBoost` module does not exist so that projects calling
`find_package(Boost)` use the upstream package directly.

Closes: #19402
2024-05-03 10:30:23 -04:00
Brad King
f0b40d451e Merge topic 'vs-filter-props'
56a96d1f1f VS: Add option to import .props in .vcxproj.filters files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9478
2024-05-02 09:43:17 -04:00
Brad King
1d8848c4ce Merge topic 'FindOpenMP-runtime-msvc'
b07c637e42 FindOpenMP: Add option to control OpenMP runtime with MSVC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9475
2024-05-02 09:34:29 -04:00
halx99
56a96d1f1f VS: Add option to import .props in .vcxproj.filters files
Adds new target property VS_FILTER_PROPS

Fixes: #25948
2024-05-02 00:30:00 +08:00
Brad King
de9faaf0a3 Merge topic 'genex-link-properties'
ddb9442f48 GenEx: Fix TARGET_PROPERTY evaluation of transitive link properties
862b8e28ad GenEx: Teach TARGET_PROPERTY evaluation to optionally pierce LINK_ONLY
8d1d6a1437 Tests: Cover TARGET_PROPERTY genex evaluation of transitive link properties
abf607c2ec Tests: Cover TARGET_PROPERTY genex evaluation of transitive build properties
7d3d728a72 Help: Clarify CMP0099 documentation and summary text
79a3ae9a0d cmGeneratorExpressionDAGChecker: Simplify transitive property table
e8010b67c7 cmGeneratorExpressionDAGChecker: Make local generator available in constructor
b36fb3f6f1 cmGeneratorExpressionNode: Remove outdated lint suppression

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9473
2024-05-01 10:06:11 -04:00
Axel Huebl
b07c637e42 FindOpenMP: Add option to control OpenMP runtime with MSVC
The MSVC compiler's `-openmp` flag accepts `:{experimental,llvm}`
values.  Add an option to specify one.

Closes: #25570
2024-05-01 08:25:14 -04:00
Tyler
7c38e6bb52 Add CMAKE_<LANG>_STANDARD_LATEST variables
Add a variable to indicate the latest standard known to be supported for
each language:

* `CMAKE_C_STANDARD_LATEST`
* `CMAKE_CXX_STANDARD_LATEST`
* `CMAKE_CUDA_STANDARD_LATEST`
* `CMAKE_HIP_STANDARD_LATEST`
* `CMAKE_OBJC_STANDARD_LATEST`
* `CMAKE_OBJCXX_STANDARD_LATEST`

These variables, more generally referred to as
`CMAKE_<LANG>_STANDARD_LATEST`, are assigned an integer value which
represents the minimum between the latest version of the associated
language standard supported by the current compiler and the latest
version supported by CMake.

Add documentation for these variables in a new page called
`CMAKE_<LANG>_STANDARD_LATEST` was added under the "Variables for
Languages" section of the `cmake-variables(7)` page.

Update each compiler-specific CMake script under
`${CMAKE_ROOT}\Modules\Compiler` to manually define the relevant
`CMAKE_<LANG>_STANDARD_LATEST` variable as necessary. This will
require updating and maintaining as newer compiler versions become
recognized by CMake.

Closes: #25717
2024-04-30 11:05:03 -04:00
Brad King
ddb9442f48 GenEx: Fix TARGET_PROPERTY evaluation of transitive link properties
In commit bbba701899 (Link properties: must be transitive over private
dependency on static library, 2019-12-06, v3.17.0-rc1~323^2) and
commit af9d4f24ae (Link properties: must be transitive over private
dependency on static library, 2019-12-11, v3.17.0-rc1~305^2) we
neglected to implement CMP0099 NEW behavior for `TARGET_PROPERTY`
evaluation.  Add policy CMP0166 to fix this.
2024-04-29 17:40:03 -04:00
Brad King
7d3d728a72 Help: Clarify CMP0099 documentation and summary text 2024-04-29 17:40:03 -04:00