summaryrefslogtreecommitdiffstats
path: root/Help/policy
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'autogen-cmp0116-fix'Brad King2021-02-241-1/+4
|\ | | | | | | | | | | | | | | | | | | | | 339dbc901f Help: Note that CMP0116 is recorded at the time of CC creation e3740e020e Tests: Test Qt autogen target with CMP0116 set to WARN cf34011ce7 Tests: Test per-CC behavior of CMP0116 3a95503512 Ninja: Use CMP0116 status recorded at time of custom command's creation f01f10e8fb cmCustomCommand: Record value of CMP0116 at time of creation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5848
| * Help: Note that CMP0116 is recorded at the time of CC creationKyle Edwards2021-02-231-1/+4
| |
* | cmListCommand: add a policy for failing on invalid indiciesBen Boeckel2021-02-181-0/+21
|/
* Help: Update Sphinx versionadded directives for 3.20 releaseBrad King2021-02-101-0/+2
| | | | | | | | | Run the script: Utilities/Sphinx/update_versions.py --since v3.19.0 --overwrite Manually restore the 3.20 version for `cmake_path`, which was originally part of 3.19 but reverted and restored in 3.20.
* Help: Convert some genex names to explicit cross-referencesBrad King2021-02-052-3/+3
| | | | | | | | | Since commit c2dc7e0f53 (Help: Convert genex documentation to sphinx domain objects, 2021-01-15) we can use `:genex:` cross-references to link to named generator expressions. Update some places to do this. This is meant to demonstrate the capability, not as a comprehensive sweep.
* Merge topic 'update_cmp112'Brad King2020-12-081-0/+1
|\ | | | | | | | | | | | | cf0c71dae3 Document CMP0112 covers $<TARGET_FILE_NAME,tgt> Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5582
| * Document CMP0112 covers $<TARGET_FILE_NAME,tgt>Robert Maynard2020-12-071-0/+1
| | | | | | | | Fixes #21559
* | WriteCompilerDetectionHeader: Add policy to remove moduleBrad King2020-12-051-0/+47
| | | | | | | | | | | | See justification in the policy documentation. Closes: #17842
* | Compile with explicit language flag when source LANGUAGE property is setBrad King2020-12-021-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change was originally made by commit 74b1c9fc8e (Explicitly specify language flag when source LANGUAGE property is set, 2020-06-01, v3.19.0-rc1~722^2), but it was reverted by commit 30aa715fac (Revert "specify language flag when source LANGUAGE property is set", 2020-11-19) to restore compatibility with pre-3.19 behavior. Implement the change again, but add policy CMP0119 to make this change while preserving compatibility with existing projects. Note that the `Compiler/{Clang,Intel,MSVC}-CXX` modules do not need to specify `-TP` for their MSVC-like variants because we already use the flag in `CMAKE_CXX_COMPILE_OBJECT`. Similarly for `Compiler/XL-CXX` and `Platform/Windows-Embarcadero`. Note also that this does not seem possible to implement for XL C. Even with `-qsourcetype=c`, `xlc` complains about an unknown suffix: `1501-218 (W) file /.../AltExtC.zzz contains an incorrect file suffix`. It returns non-zero even with `-qsuppress=1501-218`. Co-Author: Robert Maynard <robert.maynard@kitware.com> Fixes: #14516, #20716
* | GENERATED prop: Introducing policy CMP0118 and its documentationDeniz Bahadir2020-11-241-0/+17
| | | | | | | | | | Note: This is currently only defining the CMP0118 policy and providing its documentation, however, the implementation is still not using it.
* | MSVC: Do not add /GR to CMAKE_CXX_FLAGS by defaultBrad King2020-11-131-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | The `/GR` flag has been on by default since MSVC cl 14.0 from VS 2005. Remove it from the default flags to make it easier for projects to pass `/GR-` themselves to turn it off. Projects may be using string processing to replace `/GR` with another flag, so we cannot simply drop it. Add a policy to drop it in a compatible way. Fixes: #21428
* | Merge topic 'docs-cleanup-3.19'Craig Scott2020-10-262-4/+4
|\ \ | |/ | | | | | | | | | | 95c14579f2 Help: Cleanup typos and grammar for the 3.19 release Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5419
| * Help: Cleanup typos and grammar for the 3.19 releaseCraig Scott2020-10-242-4/+4
| |
* | Merge topic 'doc-CMP0111'Brad King2020-10-191-3/+10
|\ \ | |/ | | | | | | | | | | | | 5c3a91c808 CMP0111: Clarify that the new error is on a missing property setting Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex Reinking <alex_reinking@berkeley.edu> Merge-request: !5385
| * CMP0111: Clarify that the new error is on a missing property settingBrad King2020-10-161-3/+10
| | | | | | | | The previous wording could be confused with the file missing on disk.
* | Ninja: Transform DEPFILEs with policy CMP0116Kyle Edwards2020-10-131-0/+38
| | | | | | | | Fixes: #21267
* | CMP0115: Require source file extensions to be explicitKyle Edwards2020-10-131-0/+34
|/
* Help: Update Sphinx versionadded directives for 3.19 releaseBrad King2020-10-081-0/+2
| | | | | | Run the script: Utilities/Sphinx/update_versions.py --since v3.18.0 --overwrite
* ExternalProject: Add policy CMP0114 to refine step target dependenciesBrad King2020-09-141-0/+85
| | | | | | | | | | | | | | | | | | | | | | | | `ExternalProject_Add_StepTargets` and `INDEPENDENT_STEP_TARGETS` have some limitations and lack some sanity checks. They can cause confusing build systems to be generated. The basic problems are: * The notion of step independence is attached to the step target rather than the step itself. * The custom commands implementing the steps are duplicated in the step targets and the primary targets. This can cause races. It is also incompatible with the Xcode "new build system". Fix this by introducing policy CMP0114 to change the way step target dependencies are handled. Define independence from external dependencies as a property of each individual step regardless of whether there is a target for it. Add dependencies among the primary target and the step targets such that each custom command only appears in one target. When some steps are disconnected from the primary target, add step targets for the steps commonly depended upon so that there is a place to hold their custom commands uniquely. Fixes: #18663
* Makefile: Add policy CMP0113 to avoid duplication of custom commandsBrad King2020-09-081-0/+43
| | | | | | | | | | | | | | | | | Do not attach a custom command to a target if it is already attached to one of the target's dependencies. The command's output will be available by the time the target needs it because the dependency containing the command will have already been built. This may break existing projects that do not properly mark non-created outputs with the `SYMBOLIC` property. Previously a chain of two custom commands whose intermediate dependency is not created would put both commands in a dependent project's Makefile even if the first command is also in its dependency's Makefile. The first command would run twice but the build would work. Now the second command needs an explicit `SYMBOLIC` mark on its input to tell CMake that it is not expected to exist. To maintain compatibility with projects that left out the mark, add a policy activating the behavior.
* GenEx: Remove unneeded dependencies from target info queriesRobert Maynard2020-09-011-0/+39
| | | | | | | | | | Only generate a graph dependency between a custom command and a target when the custom command queries for the file path of an artifact of the target. This makes generator expressions such as `TARGET_FILE_DIR` behave the same way as `TARGET_PROPERTY` which never generated a graph dependency.
* cmTarget: Raise error if imported target location is not setRaul Tambre2020-08-211-0/+20
| | | | | | | | Previously we would synthesize <TARGET_NAME>-NOTFOUND as the location. This would then end up on the link line and cause build failures. Policy CMP0110 is added to control this behaviour. Fixes #19080, #19943.
* add_test: Allow special characters in test name (w/ policy CMP0110)Deniz Bahadir2020-08-121-0/+24
| | | | | | | | | | | | | | Restore the change from commit f84af8e270 (add_test: Allow special characters in test name, 2020-05-16, v3.18.0-rc1~142^2) that had to be reverted by commit f84af8e270 (add_test: Allow special characters in test name, 2020-05-16, v3.18.0-rc1~142^2) for compatibility. Add policy CMP0110 to make the change in a compatible way. Also, support even more characters than before by generating the test scripts using bracket arguments around the test names. Fixes: #19391 Signed-off-by: Deniz Bahadir <dbahadir@benocs.com>
* Fix typos identified using codespellJean-Christophe Fillion-Robin2020-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://github.com/codespell-project/codespell#readme The following command was used: ``` codespell -q6 --skip="\ .git,\ *.json,\ ./Copyright.txt,\ ./Help/command/foreach.rst,\ ./Help/prop_test/REQUIRED_FILES.rst,\ ./Help/variable/CTEST_COVERAGE_COMMAND.rst,\ ./Modules/CMakeCheckCompilerFlagCommonPatterns.cmake,\ ./Modules/CMakeRCInformation.cmake,\ ./Modules/Internal/CPack/NSIS.template.in,\ ./Modules/FindMatlab.cmake,\ ./Modules/MatlabTestsRedirect.cmake,\ ./Modules/Platform/Windows-Clang.cmake,\ ./Modules/Platform/Windows-Intel-Fortran.cmake,\ ./Modules/Platform/Windows-MSVC.cmake,\ ./Source/CMakeVersion.cmake,\ ./Source/cmConvertMSBuildXMLToJSON.py,\ ./Source/cmCreateTestSourceList.cxx,\ ./Source/cmGlobalVisualStudio10Generator.cxx,\ ./Source/cmExportBuildFileGenerator.cxx,\ ./Source/cmExportInstallAndroidMKGenerator.cxx,\ ./Source/cmExportInstallFileGenerator.cxx,\ ./Source/cmExportSet.cxx,\ ./Source/cmExportTryCompileFileGenerator.cxx,\ ./Source/cmFindPackageCommand.cxx,\ ./Source/cmInstallCommand.cxx,\ ./Source/cmGeneratorExpressionLexer.cxx,\ ./Source/cmLocalVisualStudio7Generator.cxx,\ ./Source/cmOrderDirectories.cxx,\ ./Source/cmTarget.cxx,\ ./Source/kwsys/*,\ ./Source/QtDialog/CMakeSetupDialog.ui,\ ./Source/CPack/WiX/cmWIXRichTextFormatWriter.cxx,\ ./Source/CTest/cmParseCoberturaCoverage.h,\ ./Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/English.license.rtf,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/German.license.txt,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/German.menu.txt,\ ./Tests/RunCMake/GoogleTest/xml_output.cpp,\ ./Tests/RunCMake/Make/TargetMessages*,\ ./Utilities/*,\ " \ -L "\ dependees,\ endwhile,\ fo,\ filetest,\ helpfull,\ nd,\ objext,\ stoll,\ supercedes,\ superceded,\ vas,\ varn,\ " ```
* Help: Add Sphinx 'versionadded' directives to each top-level documentKitware Robot2020-07-0659-0/+118
| | | | | | | Run the `Utilities/Sphinx/update_versions.py` script to add initial markup to every top-level document and find module. Issue: #19715
* find_program: Find programs that are executable but not readableBrad King2020-06-151-0/+22
| | | | | | | | | This fix was first made by commit 86e6349ef7 (find_program: Find programs that are executable but not readable, 2020-04-04, v3.18.0-rc1~372^2) but was reverted for compatibility. Re-introduce it with a policy for compatibility. Fixes: #10468
* CUDA: Add support for disabling CUDA_ARCHITECTURESRaul Tambre2020-06-151-0/+25
| | | | | | | | | | The ability to disable adding architectures completely for packaging purposes and cases requiring passing the architectures flags explicitly has been requested. Support a false value for CUDA_ARCHITECTURES and CMAKE_CUDA_ARCHITECTURES for this purpose. Implements #20821.
* target_link_libraries: self-link through ALIAS is an errorMarc Chevrier2020-05-301-0/+19
| | | | Fixes: #19617
* ALIAS target: cannot overwrite an existing targetMarc Chevrier2020-05-281-0/+19
| | | | Fixes: #19616
* Modules/Documentation: removeBen Boeckel2020-04-221-0/+19
| | | | | | | | | | | | This is an old module from when VTK and other Kitware projects drove the addition of commands and modules into CMake itself. Modern VTK doesn't need this module and it can be ignored. This module is kept around so that the ancient VTK versions which use it are not broken by it. VTK itself stopped using the module in 2012 and the last usage by an example in VTK was removed in 2020. Fixes: #20591
* CUDA: Device linking use now link optionsMarc Chevrier2020-04-191-0/+19
| | | | | | | | | | properties LINK_OPTIONS and INTERFACE_LINK_OPTIONS are propagated to the device link step. To control which options are selected for normal link and device link steps, the $<DEVICE_LINK> and $<HOST_LINK> generator expressions can be used. Fixes: #18265
* CUDA: Add CUDA_ARCHITECTURES target propertyRaul Tambre2020-04-151-0/+31
| | | | | | | | | | | Simplifies CUDA target architecture handling. Required for Clang support as Clang doesn't automatically select a supported architecture. We detect a supported architecture during compiler identification and set CMAKE_CUDA_ARCHITECTURES to it. Introduces CMP0104 for backwards compatibility with manually setting code generation flags with NVCC. Implements #17963.
* export(): raise an error on multiple calls with same FILEMarc Chevrier2020-03-261-0/+22
| | | | Fixes: 20472
* cmMarkAsAdvancedCommand: ignore variables which don't exist in the cacheBen Boeckel2020-01-201-0/+25
| | | | Fixes: #18331
* target_compile_options: ensure BEFORE keyword is handled in all scopesMarc Chevrier2020-01-111-0/+20
| | | | Fixes: #20200
* Autogen: Process .hh headers based on new policy CMP0100 settingsSebastian Holtermann2020-01-041-0/+40
| | | | | | | Reintroduces .hh header processing in AUTOMOC and AUTOUIC based on the new policy CMP0100 setting. Fixes: #13904 CMAKE_AUTOMOC misses headers with ".hh" extension
* Link properties: must be transitive over private dependency on static libraryMarc Chevrier2019-12-091-0/+24
| | | | Fixes: #20022
* FindFLEX: Add policy CMP0098 to run flex in build treeJannick2019-11-151-0/+30
|
* Merge topic 'docs-find-vars'Brad King2019-10-291-3/+3
|\ | | | | | | | | | | | | | | a0a7a45dbc Help: Fix markup errors, improve wording of CMAKE_FIND... variable docs 049dbdd38c Help: Document that <PackageName>_ROOT applies to config packages too Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3952
| * Help: Document that <PackageName>_ROOT applies to config packages tooCraig Scott2019-10-271-3/+3
| | | | | | | | | | | | | | | | | | The original intent of <PackageName>_ROOT may have been for it to apply only to Find modules, but the implementation of the find_package() command treats modules and config packages the same. Both result in a <PackageName>_ROOT variable being pushed onto the stack of package roots. A config package can also call other find_...() commands, the behavior doesn't apply just to find modules.
* | Help: Fix capitalization in CMP0097 documentationKyle Edwards2019-10-231-1/+1
|/
* ExternalProject: Support not initializing any submodulesRobert Maynard2019-07-241-0/+23
| | | | Fixes #15592
* Merge topic 'msvc-runtime-library-doc'Brad King2019-07-191-1/+3
|\ | | | | | | | | | | | | 282d9f3168 MSVC: Document behavior when MSVC_RUNTIME_LIBRARY is not set Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3573
| * MSVC: Document behavior when MSVC_RUNTIME_LIBRARY is not setBrad King2019-07-191-1/+3
| | | | | | | | | | By default `CMAKE_MSVC_RUNTIME_LIBRARY` is not set. Document the default runtime library selection in that case. We already test it.
| * Merge branch 'android-pie-cmp0083' into release-3.15Brad King2019-06-191-0/+6
| |\ | | | | | | | | | Merge-request: !3459
* | | project: Keep leading `0` in PROJECT_VERSION componentsAlex Turbov2019-07-161-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce CMake policy `CMP0096` to make `project()` keep leading zeros in version components. As a side effect, it now allows really long version numbers. Fixes: #19421 Co-Author: Brad King <brad.king@kitware.com>
* | | Merge topic 'android-pie-cmp0083'Brad King2019-06-191-0/+6
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 9e99a95c7d Android: ensure PIE behavior is consistent regardless CMP0083 policy Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3459
| * | Android: ensure PIE behavior is consistent regardless CMP0083 policyMarc Chevrier2019-06-191-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | In commit c4b4d8b3a6 (POSITION_INDEPENDENT_CODE: Manage link flags for executables, 2018-10-02, v3.14.0-rc1~395^2) we accidentally removed our Android-specific logic for PIE under the CMP0083 OLD behavior. Restore it and also implement Android-specific logic for CMP0083 NEW behavior. Fixes: #19393
* | | cmInstallTargetGenerator: Introduce CMP0095Dennis Klein2019-06-131-0/+30
| |/ |/| | | | | | | | | | | Escape coincidental CMake syntax in RPATH entries when generating the intermediary cmake_install.cmake script. Fixes #19225
* | FindPython: Add policy to manage lookup stratgey default.Marc Chevrier2019-05-211-0/+22
| |