summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix invalid ///! doxygen comment line startsSebastian Holtermann2019-03-311-21/+21
| | | | | In various places `///!` was used to start a comment line. This is not valid Doygen syntax. This patch replaces `///!` comment starts with `//!`.
* cmTarget: Use std::unique_ptr instead of custom smart pointerSebastian Holtermann2019-03-231-18/+12
| | | | | | | | To manage the lifetime of `cmTargetInternals`, the private implementation of `cmTarget`, use `std::unique_ptr<cmTargetInternals>` instead of `cmTargetInternalPointer`, which is removed. `cmTarget` is made non-copyable but movable.
* cmTarget: Single line comment clanupsSebastian Holtermann2019-03-231-9/+7
|
* cmTarget: Make private `SetPropertyDefault` an in code lambda `InitProperty`Sebastian Holtermann2019-03-231-5/+0
|
* cmTarget: Remove obsolete `friend` definitionsSebastian Holtermann2019-03-231-5/+3
|
* cmTarget: Inline private HasImportLibrary methodSebastian Holtermann2019-03-231-3/+0
|
* cmTarget: Move member method `CheckImportedLibName` to implSebastian Holtermann2019-03-231-3/+0
|
* cmTarget: Move member method `ProcessSourceItemCMP0049()` to implSebastian Holtermann2019-03-231-5/+2
|
* cmTarget: Move member booleans to implSebastian Holtermann2019-03-231-16/+6
|
* cmTarget: Move member `*Commands` to implSebastian Holtermann2019-03-231-31/+12
|
* cmTarget: Move member `RuntimeInstallPath` to implSebastian Holtermann2019-03-231-9/+2
|
* cmTarget: Move member `InstallPath` to implSebastian Holtermann2019-03-231-3/+2
|
* cmTarget: Move member `Name` to implSebastian Holtermann2019-03-231-2/+1
|
* cmTarget: Move member `TLLCommands` to implSebastian Holtermann2019-03-231-1/+0
|
* cmTarget: Move member `Backtrace` to implSebastian Holtermann2019-03-231-2/+0
|
* cmTarget: Move member `PolicyMap` to implSebastian Holtermann2019-03-231-2/+7
|
* cmTarget: Move member `OriginalLinkLibraries` to implSebastian Holtermann2019-03-231-13/+4
|
* cmTarget: Move member `Utilities` to implSebastian Holtermann2019-03-231-7/+4
|
* cmTarget: Move member `SystemIncludeDirectories` to implSebastian Holtermann2019-03-231-6/+2
|
* cmTarget: Move member `Properties` to impl classSebastian Holtermann2019-03-231-5/+3
|
* cmTarget: Move member `Makefile` to implSebastian Holtermann2019-03-231-4/+4
|
* cmTarget: Move member `TargetType` to implSebastian Holtermann2019-03-231-5/+2
|
* cmTarget: Rename member `Internal` to `impl`Sebastian Holtermann2019-03-231-1/+1
|
* cmTarget,cmGeneratorTarget: Add optional `before` parameter to AddSourceSebastian Holtermann2019-01-181-1/+1
| | | | | | The new optional `before` parameter in `cmTarget::AddSource` and `cmGeneratorTarget::AddSource` allows to prepend a source file to the sources list instead of appending it.
* cmTarget: Remove unused classes cmTargetSet and cmTargetManifestArtur Ryt2018-12-061-8/+0
|
* add_dependencies: Track backtraces internallyBrad King2018-10-181-5/+6
| | | | | Record backtraces for "utility" dependencies created by `add_dependencies` calls.
* LINK_DIRECTORIES: Add new properties and commandsMarc Chevrier2018-09-251-6/+5
| | | | | | | | | | | | These new capabilities enable to manage link directories Two new properties: * target properties: LINK_DIRECTORIES and INTERFACE_LINK_DIRECTORIES One new command * target_link_directories(): to populate target properties Fixes: #17215
* target_link_libraries: Allow use with targets in other directoriesBrad King2018-09-121-0/+3
| | | | | | | | | | | | | | | | | | | | | 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
* Add GetSafeProperty method to cmTarget, cmGeneratorTarget and cmSourceFileSebastian Holtermann2018-07-021-0/+3
|
* LINK_OPTIONS: Add new family of propertiesMarc Chevrier2018-06-061-0/+6
| | | | | | | | | | | | | | This family enable to manage link flags Three new properties: * directory property: LINK_OPTIONS * target properties: LINK_OPTIONS and INTERFACE_LINK_OPTIONS Two new commands * add_link_options(): to populate directory property * target_link_options(): to populate target properties Fixes: #16543
* 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.
* cmTarget: Remove unnecessary RecordDependencies memberBrad King2018-03-061-1/+0
| | | | Inline the condition in the one remaining place it is checked.
* cmTarget: Simplify ClearDependencyInformation signatureBrad King2018-03-061-1/+1
| | | | We don't need to pass an argument with the target's own name.
* server: return whether or not a target is generator providedJustin Goshi2017-11-201-0/+7
| | | | | | Some generators auto-generate targets. For example VS generators create the ALL_BUILD target. Add the ability to mark targets as generator provided and return that info through cmake-server codemodel.
* clang-format: format all code as Cpp11Daniel Pfeifer2017-08-301-1/+1
|
* Use C++11 nullptrDaniel Pfeifer2017-08-241-1/+1
|
* Use C++11 unordered containersDaniel Pfeifer2017-08-221-2/+2
|
* Replace boolean `implib` parameters with enumGregor Jasny2017-04-201-3/+5
| | | | | Named enumeration values are much clearer at call sites and add more type safety.
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-1/+1
| | | | | | | | | | | | | Automate with: git grep -l '#include <cm_' -- Source \ | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g' git grep -l '#include <cmsys/' -- Source \ | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g' git grep -l '#include <cm[A-Z]' -- Source \ | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
* Merge topic 'imported-interface-libname'Brad King2016-11-091-0/+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-0/+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-8/+9
|/
* Introduce CM_UNORDERED_MAPDaniel Pfeifer2016-10-241-17/+2
| | | | | Avoid duplicating switch among std::unordered_map, cmsys::hash_map, and std::map.
* cmState: Port dependents to new cmStateTypes headerStephen Kelly2016-10-191-1/+1
|
* cmState: Move TargetType enum to separate namespaceStephen Kelly2016-10-191-4/+4
|
* cmTarget: Move sanity checks and computed property access to callersStephen Kelly2016-10-161-1/+3
| | | | | | | | | | | | | | | The GetProperty method is now just accessing contained data, meaning it can be implemented in cmState. Remove the cmMakefile context from the signature as a result and remove the overload with the same signature. Add a GetComputedProperty to cmTarget so that templates can be properly instantiated. Otherwise the Commands would need to be able to reach the specializations which are currently in cmTarget.cxx. As a side-effect, the CMP0026 warning now gives a backtrace to the target when issued from a generator expression.
* cm{,Generator}Target: Add global generator accessorsStephen Kelly2016-10-151-0/+3
| | | | | Provide 'static polymorphism' between the types in this aspect so that they can be used indiscriminately in a C++ template.
* cmTarget: Split property computation into separate classStephen Kelly2016-10-151-5/+3
| | | | | Everything related to property computation will be moved here and eventually shared with cmGeneratorTarget.
* cmTarget: Remove mutable marker from propertiesStephen Kelly2016-10-151-2/+2
|
* cmTarget: Remove target name from parameter listStephen Kelly2016-10-071-2/+2
| | | | Use the member state instead.