diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-07-12 07:14:31 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2013-08-02 13:21:00 (GMT) |
commit | 370bf554151a1b272baf62a0ce9823cf9995116e (patch) | |
tree | 8f0a75a9894691c2b56588c3be4b090bf07a1558 /Source/cmMakefile.h | |
parent | b341bf2178e3923636735ae1df53a33e5857df7d (diff) | |
download | CMake-370bf554151a1b272baf62a0ce9823cf9995116e.zip CMake-370bf554151a1b272baf62a0ce9823cf9995116e.tar.gz CMake-370bf554151a1b272baf62a0ce9823cf9995116e.tar.bz2 |
Add the ALIAS target concept for libraries and executables.
* The ALIAS name must match a validity regex.
* Executables and libraries may be aliased.
* An ALIAS acts immutable. It can not be used as the lhs
of target_link_libraries or other commands.
* An ALIAS can be used with add_custom_command, add_custom_target,
and add_test in the same way regular targets can.
* The target of an ALIAS can be retrieved with the ALIASED_TARGET
target property.
* An ALIAS does not appear in the generated buildsystem. It
is kept separate from cmMakefile::Targets for that reason.
* A target may have multiple aliases.
* An ALIAS target may not itself have an alias.
* An IMPORTED target may not have an alias.
* An ALIAS may not be exported or imported.
Diffstat (limited to 'Source/cmMakefile.h')
-rw-r--r-- | Source/cmMakefile.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 871fa1b..711a208 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -337,6 +337,7 @@ public: cmTarget* AddLibrary(const char *libname, cmTarget::TargetType type, const std::vector<std::string> &srcs, bool excludeFromAll = false); + void AddAlias(const char *libname, cmTarget *tgt); #if defined(CMAKE_BUILD_WITH_CMAKE) /** @@ -536,11 +537,12 @@ public: this->GeneratorTargets = targets; } - cmTarget* FindTarget(const char* name); + cmTarget* FindTarget(const char* name, bool excludeAliases = false); /** Find a target to use in place of the given name. The target returned may be imported or built within the project. */ - cmTarget* FindTargetToUse(const char* name); + cmTarget* FindTargetToUse(const char* name, bool excludeAliases = false); + bool IsAlias(const char *name); cmGeneratorTarget* FindGeneratorTargetToUse(const char* name); /** @@ -902,6 +904,7 @@ protected: // libraries, classes, and executables cmTargets Targets; + std::map<std::string, cmTarget*> AliasTargets; cmGeneratorTargetsType GeneratorTargets; std::vector<cmSourceFile*> SourceFiles; |