summaryrefslogtreecommitdiffstats
path: root/Source/cmTargetPropertyComputer.cxx
Commit message (Collapse)AuthorAgeFilesLines
* cmTargetPropertyComputer: whitelist custom propertiesBen Boeckel2017-11-211-0/+7
| | | | | CMake's properties will never begin with an underscore or a lowercase letter, so allow them to be set by projects.
* Add new target-property `IMPORTED_GLOBAL`.Deniz Bahadir2017-11-071-0/+1
| | | | | | | | | | | | | | | The purpose of this new `IMPORTED_GLOBAL` target-property is to prolong the lifetime and scope of `IMPORTED` targets in such a way as if they had been created with the keyword `GLOBAL` in the first place. * It can only be set to `TRUE`. That means, a local `IMPORTED` target can be promoted to global scope but a global `IMPORTED` target cannot be degraded to local scope! * Setting it to `TRUE` only succeeds if done from within the same directory in which the `IMPORTED` target was created in the first place. Fixes #17256.
* Do not initialize NO_SYSTEM_FROM_IMPORTED on INTERFACE librariesBrad King2017-10-131-1/+8
| | | | | | | | | | | | | | The change in commit v3.8.0-rc1~276^2 (Allow NO_SYSTEM_FROM_IMPORTED on imported INTERFACE libraries, 2016-11-21) was incorrect. The property is not meant to be set on imported targets at all. It is meant to be set on their consumers that compile sources. Since INTERFACE libraries have no sources to compile, the property is not needed on them. Revert most of that change. Unfortunately we must still tolerate project code setting NO_SYSTEM_FROM_IMPORTED on INTERFACE libraries because they were allowed by CMake 3.8 and 3.9. Issue: #17348
* Use C++11 nullptrDaniel Pfeifer2017-08-241-1/+1
|
* Use C++11 unordered containersDaniel Pfeifer2017-08-221-2/+2
|
* Allow NO_SYSTEM_FROM_IMPORTED on imported INTERFACE librariesBrad King2016-11-211-0/+1
| | | | | | | | | Imported INTERFACE libraries can specify include directories via `INTERFACE_INCLUDE_DIRECTORIES` so the default behavior of treating them as system include directories applies. Allow users to turn this off by setting `NO_SYSTEM_FROM_IMPORTED` on such targets. Closes: #16443
* Merge topic 'imported-interface-libname'Brad King2016-11-091-1/+3
|\ | | | | | | | | | | | | | | 09cda9d5 Allow imported INTERFACE libraries to specify a link library name 1d1f1eeb cmTarget: Refactor GetMappedConfig to choose location property up front 479932fa cmTarget: Add comment clarifying interface library special case 925e4270 cmTarget: Clarify comments in GetMappedConfig
| * Allow imported INTERFACE libraries to specify a link library nameBrad King2016-11-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an `IMPORTED_LIBNAME[_<CONFIG>]` target property to specify a library name to be placed on the link line in place of an interface library since it has no library file of its own. Restrict use of the property to imported `INTERFACE` libraries. This will be particularly useful for find modules that need to provide imported libraries from system SDKs where the full path to the library file is not known. Now such find modules will be able to provide an imported interface library and set `IMPORTED_LIBNAME` to refer to the SDK library by name. Issue: #15267
* | Fix several include-what-you-use findingsDaniel Pfeifer2016-11-081-6/+5
|/
* Introduce CM_UNORDERED_SETDaniel Pfeifer2016-10-241-11/+2
| | | | | Avoid duplicating switch among std::unordered_set, cmsys::hash_set, and std::set.
* cmState: Move TargetType enum to separate namespaceStephen Kelly2016-10-191-3/+3
|
* cmTargetPropertyComputer: Template some methods on the TargetStephen Kelly2016-10-151-189/+0
| | | | Implement the methods for cmTarget in the cmTarget source.
* cmTargetPropertyComputer: Unify whitelist handling from cmTargetStephen Kelly2016-10-151-0/+16
|
* cmTargetPropertyComputer: Move whitelist check from cmTargetStephen Kelly2016-10-151-1/+30
|
* cmTargetPropertyComputer: Extract into new filesStephen Kelly2016-10-151-0/+243