summaryrefslogtreecommitdiffstats
path: root/Help/policy
Commit message (Collapse)AuthorAgeFilesLines
* FetchContent: Enforce FETCHCONTENT_FULLY_DISCONNECTED requirementsCraig Scott2024-05-291-0/+30
| | | | | | | FETCHCONTENT_FULLY_DISCONNECTED should only be set to true if each dependency's source directory has already been populated. Previously, this wasn't being checked, but now it is (subject to a new policy).
* FetchContent: Deprecate FetchContent_Populate(depName)Craig Scott2024-05-291-0/+49
| | | | | Projects should use FetchContent_MakeAvailable(depName) instead. Policy CMP0169 provides backward compatibility.
* Merge topic 'cmp0097-fetchcontent'Brad King2024-05-201-3/+12
|\ | | | | | | | | | | | | eda17e76e2 Help: Document that CMP0097 is always NEW for FetchContent Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9527
| * Help: Document that CMP0097 is always NEW for FetchContentCraig Scott2024-05-171-3/+12
| | | | | | | | Fixes: #25971
* | FetchContent: Populate directly without a sub-buildCraig Scott2024-05-171-0/+64
|/ | | | Fixes: #21703
* Merge topic 'FindBoost-remove'Brad King2024-05-061-0/+28
|\ | | | | | | | | | | | | | | | | 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
| * FindBoost: Add policy to remove this moduleBrad King2024-05-031-0/+28
| | | | | | | | | | | | | | | | | | | | 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
* | Help: Clarify cmake-buildsystem(7) compile properties section namesBrad King2024-05-031-2/+2
|/ | | | | | | | | | 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.
* GenEx: Fix TARGET_PROPERTY evaluation of transitive link propertiesBrad King2024-04-292-0/+46
| | | | | | | | | 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.
* Help: Clarify CMP0099 documentation and summary textBrad King2024-04-291-5/+8
|
* Help: CMP0135 applies to FetchContent as wellCraig Scott2024-04-271-9/+9
| | | | | | | | This updates the CMP0135 documentation, which should have been done as part of c2044fdf3f (FetchContent: Respect the CMP0135 policy setting, 2022-06-02). Issue: #23560
* enable_language(): Fail if called before project()Craig Scott2024-04-021-0/+26
| | | | Fixes: #25550
* Merge topic 'check-Werror-CMP0066'Brad King2024-04-011-1/+1
|\ | | | | | | | | | | | | | | | | | | | | cebcc07a80 CheckSymbolExists: Remove -Werror from per-config flags 06c99ce73b CheckSymbolExists: Avoid removing the flag after -Werror e60281e968 CMakeDetermineCompilerABI: Remove -Werror from per-config flags 6abd25e7fd Help: Fix a typo Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9377
| * Help: Fix a typoSung, Po Han2024-03-281-1/+1
| |
* | add_library: Reject shared libraries on platforms that do not support themAsit Dhal2024-03-291-0/+31
| | | | | | | | | | | | Add policy CMP0164 to provide compatibility. Fixes: #25759
* | CMP0163: Make GENERATED source file property globally visibleDeniz Bahadir2024-03-292-0/+43
|/ | | | | | | | | | | | | | | This was originally attempted by policy CMP0118, but its implementation did not cover all intended use cases. We fixed its documentation in commit 1dabbbb5e0 (CMP0118: Revise documentation to describe actual behavior, 2024-03-20). Add new policy CMP0163 to cover the remaining use cases. In particular, make the `GENERATED` property visible to `get_property` calls in other directories. In order to capture the original intention of CMP0118, define CMP0163's NEW behavior to also imply CMP0118's NEW behavior. Fixes: #25437 Fixes: #25058
* CMP0118: Revise documentation to describe actual behaviorDeniz Bahadir2024-03-211-12/+17
| | | | | | | | The policy was originally intended to make the `GENERATED` source file property globally visible, but the implementation didn't fully achieve that goal. Revise the documentation to describe what it actually does. Issue: #25437
* Merge topic 'doc-release-3.29-typos'Brad King2024-03-191-3/+3
|\ | | | | | | | | | | | | | | eceb368ccc Help: Fix typos in 3.29 docs 31fb693d06 Help: Fix typos and grammar in pre-3.29 docs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9353
| * Help: Fix typos in 3.29 docsCraig Scott2024-03-191-3/+3
| |
* | VS: Add UseDebugLibraries to vcxproj files by defaultBrad King2024-02-221-0/+47
|/ | | | | | | Use heuristics to select a reasonable value. Add policy CMP0162 to provide compatibility with existing projects. Fixes: #25327
* CPack: Change CPACK_PRODUCTBUILD_DOMAINS default to true (CMP0161)Craig Scott2024-01-281-0/+36
| | | | Fixes: #23351
* Merge topic 'validate_read-only_target_properties'Brad King2024-01-241-0/+39
|\ | | | | | | | | | | | | | | 0cfd8fe8ad cmTarget: Don't allow setting read-only properties Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9133
| * cmTarget: Don't allow setting read-only propertiesRobert Maynard2024-01-231-0/+39
| | | | | | | | | | Ensure that all documented read-only target properties now produce errors when trying to set.
* | Help: Fix typo in CMP0156 documentationBrad King2024-01-161-1/+1
|/
* Help: Clarify standard policy advice paragraph wording on how policies are setBrad King2024-01-111-1/+1
| | | | Avoid implying that a policy must always be set explicitly.
* Help: Drop current CMake version from standard policy advice paragraphBrad King2024-01-111-1/+1
| | | | | | Every policy documents whether CMake warns when it is not set. This behavior does not change with the CMake version, so avoid possibly confusing mention of the current CMake version.
* Help: Normalize and consolidate standard policy advice paragraphBrad King2024-01-11152-557/+510
| | | | | | | | Every policy's documentation has a paragraph on what version of CMake introduced it, how to set the policy, and whether CMake warns if the policy is not set. The wording of this paragraph has diverged across policies over time. Factor the paragraph out into a standard advice document included by every policy.
* file: `STRINGS` + `REGEX` store match resultsCristian Le2024-01-091-0/+24
| | | | Signed-off-by: Cristian Le <cristian.le@mpsd.mpg.de>
* add_test: Fix version of CMake introducing CMP0158 (to 3.29)Robert Maynard2024-01-051-0/+2
| | | | | | This was missed in commit ca5a300d7f (add_test: Honor CROSSCOMPILING_EMULATOR only when cross-compiling, 2023-11-02) when it slipped from the 3.28 release.
* add_test: Honor CROSSCOMPILING_EMULATOR only when cross-compilingRalf Habacker2023-12-191-0/+27
| | | | | | Add policy CMP0158 to provide compatibility for existing projects. Fixes: #23672
* Merge topic 'doc-CMP0149'Brad King2023-11-201-0/+7
|\ | | | | | | | | | | | | fe0d03b044 Help: Document that CMP0149 should be set before project() Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8990
| * Help: Document that CMP0149 should be set before project()Brad King2023-11-201-0/+7
| | | | | | | | Issue: #25413
* | Swift: Add abstraction for compilation modeEvan Wilde2023-11-171-0/+48
| | | | | | | | | | | | | | | | | | | | | | Add a `CMAKE_Swift_COMPILATION_MODE` variable and corresponding `Swift_COMPILATION_MODE` target property to control the compilation mode. Select among `wholemodule`, `singlefile`, and `incremental`. Add policy CMP0157 to remove the default `-wmo` flags in favor of the abstract setting. Issue: #25366
* | Link step: Enable to configure deduplication of librariesMarc Chevrier2023-11-091-0/+47
| | | | | | | | | | | | | | | | | | Some platforms, Apple or Windows for instance, do not require to duplicate static libraries to resolve mutual dependencies. Moreover, Xcode version 15 emits a warning if a library is duplicated. On Windows, enable a better control of libraries order. Fixes: #20722, #25297
* | CMP0155: ignore scanning for sources if no scanner is availableBen Boeckel2023-11-011-2/+4
| | | | | | | | | | | | | | | | | | | | This allows for a more graceful transition for projects using C++20 without scanner support (e.g., Clang 15 or GCC 13). While newer compilers will (needlessly) scan, it allows C++20-using projects to use older compilers without having to set `CMAKE_CXX_SCAN_FOR_MODULES` to support newer CMake minimum versions. Fixes: #25357
* | cmNinjaTargetGenerator: do not order-depend on C++ module sourcesBen Boeckel2023-10-201-0/+6
| | | | | | | | | | | | | | | | | | C++ module sources should not be included by any other TUs, so their presence cannot matter for order-only dependencies of the entire target. Exclude them. Update CMP0154 to take this into consideration and add tests to the `CXXModules` suite (which already deals with module support detection).
* | Help: Update Sphinx versionadded directives for 3.28 releaseBrad King2023-10-031-0/+2
| | | | | | | | | | | | | | | | | | Run the script: Utilities/Sphinx/update_versions.py --since v3.27.0 --overwrite Manually remove directives added to new documentation of existing environment variables.
* | Merge topic 'cxxmodules-no-longer-experimental'Brad King2023-10-021-0/+26
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 437280b127 cxxmodules: scan C++ sources for imports by default 3cddd11649 Ninja: message about not compiled sources explicitly 068fde1c34 cmGeneratorTarget: use `this->` for method calls 197a6bf171 cxxmodules: rework control logic for scanning regular C++ sources 5eb7bd641a Tests/RunCMake/CXXModules: remove rules file requirement ff18acc301 CXXModules: remove `EXPERIMENTAL` from C++ module variable names 0c07f39006 cmExperimental: remove the flag for C++ modules 68caec9137 Help: add a manpage for cxxmodule support Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com> Merge-request: !8828
| * | cxxmodules: scan C++ sources for imports by defaultBen Boeckel2023-10-021-0/+26
| | | | | | | | | | | | | | | Existing projects are not using C++ modules in their sources, so introduce policy CMP0155 to enable scanning by default.
* | | Merge topic 'doc-CMP0124'Brad King2023-10-021-5/+37
|\ \ \ | |/ / |/| / | |/ | | | | | | 55bf2a3494 Help: Document CMP0124 behavior on already-set variables Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8850
| * Help: Document CMP0124 behavior on already-set variablesBrad King2023-09-291-5/+37
| | | | | | | | | | | | | | | | | | Improve the documentation from commit 46896d98bb (foreach(): loop variables are only available in the loop scope, 2021-04-25, v3.21.0-rc1~245^2) to follow policy documentation convention. Fixes: #25224 Inspired-by: Marius Messerschmidt <marius.messerschmidt@googlemail.com>
* | Ninja: Allow compilation before generation of dependencies' private sourcesMartin Duffy2023-09-201-0/+53
| | | | | | | | | | | | | | | | | | | | This requires knowing when a generated header is public, which we can model using file sets. Add policy CMP0154 to treat generated sources as private by default in targets with file sets. Generated public headers can be specified in public file sets. Fixes: #24959 Issue: #15555
* | exec_program(): Remove by policy CMP0153Kyle Edwards2023-07-251-0/+12
| |
* | file(REAL_PATH): resolve symlinks before '..' componentsRobert Maynard2023-07-201-0/+20
|/ | | | | | | | Previously REAL_PATH would collapse paths before resolving any symlinks so if `..` crossed a symlink the output from `REAL_PATH` would be wrong. It looked like REAL_PATH did this by mistake since it was a side-effect of ensuring we had an absolute path before resolving symlinks.
* Autogen: Default AUTOGEN_USE_SYSTEM_INCLUDE to ON if it is not setOrkun Tokdemir2023-05-031-0/+28
| | | | Add policy CMP0151 to preserve the old behavior by default.
* Merge topic 'ExternalProject-relative-git-urls'Craig Scott2023-04-271-0/+39
|\ | | | | | | | | | | | | 550f63447d ExternalProject/FetchContent: Support relative remote URLs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7988
| * ExternalProject/FetchContent: Support relative remote URLsChris Wright2023-04-261-0/+39
| | | | | | | | | | | | | | | | | | Teach `ExternalProject_Add` and `FetchContent_Declare` to resolve relative remote URLs provided via `GIT_REPOSITORY`. Add policy CMP0150 to maintain compatibility. Fixes: #24211 Co-Authored-By: Craig Scott <craig.scott@crascit.com>
* | Merge branch 'backport-3.26-help-CMP0105' into Help-CMP0105-clarificationsMarc Chevrier2023-04-151-2/+3
|\ \ | |/ |/|
| * Help: CMP0105 policy: clarificationsMarc Chevrier2023-04-151-2/+3
| |
* | VS: Select latest available Windows SDK version by defaultBrad King2023-04-051-0/+47
| | | | | | | | | | | | | | Add policy `CMP0149` to stop preferring SDKs exactly matching `CMAKE_SYSTEM_VERSION` over the latest SDK. Fixes: #16202