summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.h
Commit message (Collapse)AuthorAgeFilesLines
* cmTarget: Replace "perConfig" constructor boolean with enumBrad King2020-05-181-1/+7
|
* 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