summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.h
Commit message (Collapse)AuthorAgeFilesLines
* GetSafeProperty: return std::string const&Vitaly Stakhovsky2020-04-301-1/+1
|
* cmTarget::GetProperty: return cmPropVitaly Stakhovsky2020-03-301-6/+7
|
* cmTarget: minor code improvementsVitaly Stakhovsky2020-03-171-2/+2
|
* Ninja Multi-Config: Fix issue with framework dependencies and AutogenKyle Edwards2020-02-171-2/+3
| | | | Fixes: #20345
* AppendProperty: convert value param to std::stringVitaly Stakhovsky2020-01-251-6/+1
|
* target_link_libraries: Fix out-of-dir linking of a list of targetsBrad King2020-01-161-3/+1
| | | | | | | | | | | | | | In a case like target_link_libraries(targetInOtherDir PUBLIC "$<1:a;b>") then all entries in the list need to be looked up in the caller's scope. Previously our `::@(directory-id)` suffix would apply only to the last entry. Instead surround the entire entry by a pair `::@(directory-id);...;::@` so that the `::@` syntax can encode a directory lookup scope change evaluated as the list is processed. Fixes: #20204
* Merge topic 'stdstring-target'Brad King2019-12-171-0/+9
|\ | | | | | | | | | | | | c34b4497f8 cmTarget: add std::string overloads Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4137
| * cmTarget: add std::string overloadsVitaly Stakhovsky2019-12-141-0/+9
| |
* | Ninja: Add multi-config variantKyle Edwards2019-12-131-1/+2
|/ | | | Co-Authored-by: vector-of-bool <vectorofbool@gmail.com>
* cmCustomCommand: Move custom commandsDaniel Eiband2019-09-261-0/+3
|
* cmMakefile: Move enumerations into new headerDaniel Eiband2019-09-261-7/+0
| | | | The enumerations will also be used in cmLocalGenerator.
* cmMakefile: Separate custom command setup from actual creationDaniel Eiband2019-09-171-1/+1
| | | | | Refactor custom command manipulation functions to consist of a setup and a commit stage. The commit stage will be delayed to generate time.
* clang-tidy: Replace typedef with usingRegina Pfeifer2019-09-041-1/+1
| | | | | | | | Automate the conversion with perl -i -0pe 's/typedef ([^;]*) ([^ ]+);/using $2 = $1;/g' then manually fix a few places.
* clang-tidy: Replace typedef with usingRegina Pfeifer2019-09-031-1/+1
|
* PCH: add PRECOMPILE_HEADERS to special propertiesDaniel Pfeifer2019-08-261-0/+5
|
* Merge topic 'fileapi-install-generators'Brad King2019-08-051-0/+4
|\ | | | | | | | | | | | | d70a0f8681 fileapi: Fix codemodel target install destination for cross-dir rules Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3639
| * fileapi: Fix codemodel target install destination for cross-dir rulesBrad King2019-07-311-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Since commit e89ad0f94e (install: Allow installing targets created in another directory, 2018-06-18, v3.13.0-rc1~407^2) we support calling `install(TARGETS)` for targets created in another directory. However, install generators are associated with the directory in which the call to `install()` appears. This may not be the same directory in which the target is defined. Record in each target the list of install generators it has. Fixes: #19546
* | cmStringAlgorithms: Move string functions to the new cmStringAlgorithms.hSebastian Holtermann2019-07-291-0/+1
| | | | | | | | | | This adds the `cmStringAlgorithms.h` header and moves all string functions from `cmAlgorithms.h` to `cmStringAlgorithms.h`.
* | AIX: Explicitly compute executable exports for both XL and GNUBrad King2019-07-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On AIX, symbols in executables must be exported in order to be visible to modules (plugins) they load via `dlopen`. Prior to policy `CMP0065`, CMake linked all executables with flags to export symbols, but the NEW behavior for that policy is to do so only for executables that have the `ENABLE_EXPORTS` target property set. In both cases, CMake has always used the AIX linker option `-bexpall` option to export symbols from executables. This has worked fairly well with the XL compiler, but with the GNU compiler it works only for C ABI symbols. The reason is that `-bexpall` does not export symbols starting in `_` but the GNU C++ ABI mangles all symbols with a leading `_`. Therefore we have only supported C ABI plugins with the GNU compiler on AIX. Some projects have tried to work around this by replacing `-bexpall` with `-bexpfull`, but the latter often exports symbols that we do not want exported. Avoid using `-bexpall` for executables by instead using by our own internal `ExportImportList` script to compute symbol export lists from the object files to be linked into an executable. Pass the explicitly computed export list to the AIX linker's `-bE:...` option. We already do this for shared object exports. Issue: #19163
* | De-duplicate checks for whether a platform uses Windows DLLsBrad King2019-07-121-0/+3
| |
* | IWYU: Fix handling of <memory> standard headerBrad King2019-07-101-1/+1
|/ | | | | | | | An old workaround for `std::allocator_traits<>::value_type` lints from IWYU on `std::vector<>` usage breaks IWYU's handling of `<memory>`. Convert the workaround to use the same approach we already use for a workaround of `std::__decay_and_strip<>::::__type` lints. Then update the `<memory>` inclusions to follow the now-correct IWYU lints.
* cmMakefile: Define cmTargetMap type in cmMakefile instead of cmTargetSebastian Holtermann2019-05-231-3/+0
| | | | | | | | The `cmTargetMap` type is only used in the context of `cmMakefile`. Therefore it is the most appropriate place to declare it. This moves the `cmTarget.h/cmTargets` type definition to `cmMakefile::cmTargetMap`.
* 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