summaryrefslogtreecommitdiffstats
path: root/Source/cmPolicies.h
Commit message (Collapse)AuthorAgeFilesLines
* target_link_libraries: self-link through ALIAS is an errorMarc Chevrier2020-05-301-1/+4
| | | | Fixes: #19617
* ALIAS target: cannot overwrite an existing targetMarc Chevrier2020-05-281-1/+3
| | | | Fixes: #19616
* Modules/Documentation: removeBen Boeckel2020-04-221-1/+3
| | | | | | | | | | | | 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-3/+6
| | | | | | | | | | 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-1/+6
| | | | | | | | | | | 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-1/+4
| | | | Fixes: 20472
* cmMarkAsAdvancedCommand: ignore variables which don't exist in the cacheBen Boeckel2020-01-201-1/+4
| | | | Fixes: #18331
* target_compile_options: ensure BEFORE keyword is handled in all scopesMarc Chevrier2020-01-111-0/+3
| | | | Fixes: #20200
* Autogen: Process .hh headers based on new policy CMP0100 settingsSebastian Holtermann2020-01-041-1/+3
| | | | | | | 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-2/+7
| | | | Fixes: #20022
* FindFLEX: Add policy CMP0098 to run flex in build treeJannick2019-11-151-1/+4
|
* ExternalProject: Support not initializing any submodulesRobert Maynard2019-07-241-1/+5
| | | | Fixes #15592
* project: Keep leading `0` in PROJECT_VERSION componentsAlex Turbov2019-07-161-1/+4
| | | | | | | | | 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>
* cmInstallTargetGenerator: Introduce CMP0095Dennis Klein2019-06-131-2/+7
| | | | | | | 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/+4
|
* FindBoost: Introduce CMP0093 to report Boost_VERSION in x.y.z formatDennis Klein2019-05-131-1/+3
| | | | This aligns module mode behaviour with config mode.
* MSVC: Do not add /W3 to CMAKE_<LANG>_FLAGS by defaultBrad King2019-04-191-1/+4
| | | | | | | | | | | | | | We do not add default warning flags on other compilers, and having a warning flag in the default flags makes it hard for projects to customize the warning level. They need to use string processing to remove `/W3` from `CMAKE_{C,CXX}_FLAGS`. Therefore we should drop it. However, projects may be using string processing to replace `/W3` with another flag, so we cannot simply drop it. Add a policy to drop it in a compatible way. Fixes: #18317
* MSVC: Add abstraction for runtime library selectionBrad King2019-04-171-1/+4
| | | | | | | | | | | | | | | | Replace our hard-coded defaults for `/MD` and `/MDd` with a first-class abstraction to select the runtime library from an enumeration of logical names. We've long hesitated to do this because the idea of "runtime library selection" touches on related concepts on several platforms. Avoid that scope creep by simply defining an abstraction that applies only when targeting the MSVC ABI on Windows. Removing the old default flags requires a policy because existing projects may rely on string processing to edit them and choose a runtime library under the old behavior. Add policy CMP0091 to provide compatibility. Fixes: #19108
* Fix invalid ///! doxygen comment line startsSebastian Holtermann2019-03-311-6/+6
| | | | | In various places `///!` was used to start a comment line. This is not valid Doygen syntax. This patch replaces `///!` comment starts with `//!`.
* export: Disable PACKAGE mode user package registry by defaultRobert Maynard2019-03-151-0/+3
| | | | | | | The user package registry populated by the `export()` command causes side effects outside the build and source directories. Such effects should be opt-in rather than op-out. Introduce a policy to change default behavior of `export(PACKAGE)` to do nothing.
* XLClang: Add policy CMP0089 to present as XL for compatibilityBrad King2019-02-251-1/+4
| | | | | | | | We now identify IBM's Clang-based XL compilers, which define `__ibmxl__`, as `XLClang` rather than `XL`. In order to support existing project code that checks for `XL`, add a policy whose OLD behavior is to present the compiler id as `XL` and whose NEW behavior is to present the compiler id as `XLClang` as we really detect it.
* FindBISON: Add policy CMP0088 to run bison in build treeRobert Maynard2019-01-101-0/+3
|
* install: Teach CODE,SCRIPT modes to evaluate generator expressionsJon Chronopoulos2018-12-221-1/+5
| | | | | | | This also introduces CMP0087 which will keep the OLD behaviour of not evaluating generator expressions Fixes: #15785
* UseSWIG: add management of SWIG option -moduleMarc Chevrier2018-12-071-1/+4
| | | | | | | When file property SWIG_MODULE_NAME is specified, provide option -module to SWIG compiler. Fixes: #18374
* Genex: Add policy to handle empty list items in $<IN_LIST:...>Kyle Edwards2018-11-191-1/+3
| | | | | | | | | | The old behavior of $<IN_LIST:...> is inconsistent with that of if(IN_LIST), in that it does not find an empty search item even if the list contains empty items. This change adds a new policy to correctly handle empty items and make the behavior more consistent with if(IN_LIST). Fixes: #18556
* find_package(): Add policy to remove the FindQt moduleKyle Edwards2018-11-141-1/+4
| | | | | | | | Removing FindQt.cmake gives Qt upstream a path forward to export its own QtConfig.cmake files which can be found by find_package() without having to explicitly specify CONFIG. Projects that still want to use Qt3/4 can call find_package(Qt[34]), include(FindQt), or add FindQt.cmake to their CMAKE_MODULE_PATH.
* POSITION_INDEPENDENT_CODE: Manage link flags for executablesMarc Chevrier2018-11-111-2/+5
| | | | Fixes: #14983, #16561
* Merge topic 'cmake_policy-get_warning'Brad King2018-10-111-1/+1
|\ | | | | | | | | | | | | | | 0d988f98e5 cmake_policy: Add undocumented GET_WARNING command f9f96598df Help: Convert FindOpenGL documentation to block comment Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2472
| * cmake_policy: Add undocumented GET_WARNING commandKyle Edwards2018-10-101-1/+1
| | | | | | | | | | | | | | This command is intended for modules that issue policy warnings so they can get the warning string from CMake in a uniform manner, rather than duplicating the string. Several modules been updated to include an example of the usage of this new command.
* | add_subdirectory: Run subdirectory install rules in correct orderKyle Edwards2018-10-101-1/+5
|/ | | | | | | | | Before this change, install rules created by add_subdirectory() would be executed after all of the top-level install rules, even if they were declared before the top-level rules. This change adds a new policy, CMP0082, which interleaves the add_subdirectory() install rules with the other install rules so they are run in the correct order.
* LINK_DIRECTORIES target property: add policy for absolute paths check.Marc Chevrier2018-09-251-2/+6
|
* BundleUtilities: Disallow inclusion at configure timeKyle Edwards2018-09-191-1/+4
| | | | | | This commit adds a new CMake policy, CMP0080, which prohibits the inclusion of BundleUtilities at configure time. The old behavior is to allow the inclusion.
* target_link_libraries: Allow use with targets in other directoriesBrad King2018-09-121-1/+5
| | | | | | | | | | | | | | | | | | | | | Previously the command did not allow naming targets on the LHS that were not created in the calling directory. Lift this restriction to enable more flexible use by projects. Targets named on the RHS will need to be looked up during generation in the scope of the call site rather than the scope of the LHS target. Introduce an internal syntax in `[INTERFACE_]LINK_LIBRARIES` properties to specify target names that need to be looked up in a directory other than that containing the target on which the property is set. Add minimal documentation of the syntax to help users that encounter it. Unfortunately CMake previously did allow such calls in the case that only `INTERFACE` libraries are specified, but those libraries would be looked up in the target's directory rather than the caller's. Add policy `CMP0079` to enable the new behavior with new lookup scope in a compatible way. Fixes: #17943
* UseSWIG: add policy to manage target naming strategy.Marc Chevrier2018-07-251-1/+3
|
* Merge topic 'doc-find_package-root'Craig Scott2018-07-201-2/+2
|\ | | | | | | | | | | | | 492ade276b Help: Add explicit <PackageName>_ROOT variable documentation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2225
| * Help: Add explicit <PackageName>_ROOT variable documentationBrad King2018-07-201-2/+2
| | | | | | | | | | | | Add documentation for both the CMake variable and environment variable of this name pattern. Update references to these names to link to their documents. Clarify the pattern used to construct their names.
* | option: respect existing normal variableRobert Maynard2018-07-091-1/+3
| | | | | | | | Add policy CMP0077 to change this behavior in a compatible way.
* | target_sources: Interpret relative paths as relative to the calling directoryPatrick Stotko2018-06-181-2/+6
|/ | | | | | | | | | Previously the command considered non-absolute source file paths relative to the associated target on the LHS. This causes problems in incremental builds where files are added from subdirectories and forces users to workaround by manually converting to absolute paths. Change this to enable more intuitive usage by projects. Fixes #17981
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-2/+3
| | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 6.0. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* Modules: Update documented links to CMake community WikiBrad King2018-04-301-3/+1
| | | | The wiki has moved. Update links to reference the new pages.
* CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIESBrad King2018-04-181-1/+4
| | | | | | | | | | | | | Other check modules honor this variable, so include file checks should too. Add policy `CMP0075` to enable the behavior in a compatible way. This change was originally made by commit v3.11.0-rc1~108^2 (CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIES, 2017-12-24) but it was reverted by commit v3.11.1~9^2 (Revert "CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIES", 2018-04-04) because the behavior change could affect checks in existing projects in an incompatible way. Fixes: #9514
* Merge topic 'policy-version-range'Craig Scott2018-03-221-1/+5
|\ | | | | | | | | | | | | | | | | | | 45408b5ea1 cmake_minimum_required: Optionally set policies with version range 6a41aa2abd cmPolicies: Split parsing and impl of ApplyPolicyVersion 1d00ed7cf7 cmPolicies: Drop unnecessary check from ApplyPolicyVersion 0df559832b cmPolicies: Pass policy version as std::string Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1864
| * cmake_minimum_required: Optionally set policies with version rangeBrad King2018-03-211-1/+2
| | | | | | | | | | | | | | | | Teach `cmake_minimum_required` and `cmake_policy(VERSION)` to support a version range of the form `<min>[...<max>]`. Define this to mean that version `<min>` is required, but known policies up to those introduced by `<max>` will be set to `NEW`. This will allow projects to easily specify a range of versions for which they have been updated.
| * cmPolicies: Split parsing and impl of ApplyPolicyVersionBrad King2018-03-161-0/+2
| | | | | | | | Also rename local variables to clarify their role during parsing.
| * cmPolicies: Pass policy version as std::stringBrad King2018-03-161-1/+2
| |
* | find_package: Use PackageName_ROOT variables as search prefixesBrad King2018-03-161-1/+3
|/ | | | | | | | | | | | | | | | | | | This feature was originally added by commit v3.9.0-rc1~71^2~2 (find_*: Add a new PackageRoot search path group, 2017-05-03) and documented by commit v3.9.0-rc1~71^2 (find_*: Add docs for PackageRoot search path group, 2017-05-03). However, we had to disable the feature and remove the documentation in commit v3.9.1~2^2 (find_*: Disable the PACKAGE_ROOT search path group for CMake 3.9, 2017-08-08) due to breaking projects that used `PackageName_ROOT` variables themselves. Add policy `CMP0074` to restore the `PackageName_ROOT` variable behavior in a compatible way. Also revise the stack of root paths to store the paths themselves rather than the package names. This way the policy can be considered at the `find_package` call site instead of individual `find_` calls inside a find module. Co-Author: Chuck Atkins <chuck.atkins@kitware.com> Issue: #17144
* Do not produce legacy _LIB_DEPENDS cache entriesBrad King2018-03-071-1/+5
| | | | | | Introduce policy `CMP0073` to avoid producing these cache entries. Fixes: #16364
* FindOpenGL: Add policy CMP0072 to prefer GLVND for legacy GLBrad King2017-11-171-1/+4
| | | | Fixes: #17449
* Merge topic 'cmp0037-conditional-targets'Brad King2017-10-311-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | ae5f4069 CMP0037: Allow test and package targets when features are not enabled 409527a0 CMP0037: De-duplicate check and message generation a2611d81 Tests: Add RunCMake.CMP0037 case for WARN on reserved targets 103501c4 Tests: Do not enable languages in all cases of RunCMake.CMP0037 2d0b3e6e cmGlobalGenerator: Refactor test and package target conditions Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !1417
| * CMP0037: Allow test and package targets when features are not enabledBrad King2017-10-301-0/+1
| | | | | | | | | | | | | | When CMake will not generate a test, package, or package_source target, allow projects to create their own targets with these names. Fixes: #16062