diff options
author | Ken Martin <ken.martin@kitware.com> | 2006-11-29 16:00:17 (GMT) |
---|---|---|
committer | Ken Martin <ken.martin@kitware.com> | 2006-11-29 16:00:17 (GMT) |
commit | daa6d2bc04ff8631559ffcb5141f197cac33e755 (patch) | |
tree | 34559ea255e91d274cfa9d38ed7be7f01a906546 /Source/cmTarget.h | |
parent | e9a80cd8a90c3309d32df58b27dcc6e061f5928f (diff) | |
download | CMake-daa6d2bc04ff8631559ffcb5141f197cac33e755.zip CMake-daa6d2bc04ff8631559ffcb5141f197cac33e755.tar.gz CMake-daa6d2bc04ff8631559ffcb5141f197cac33e755.tar.bz2 |
ENH: updated handling of debug and optimized target link libraries
Diffstat (limited to 'Source/cmTarget.h')
-rw-r--r-- | Source/cmTarget.h | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/Source/cmTarget.h b/Source/cmTarget.h index dc39f80..d6e3f8d 100644 --- a/Source/cmTarget.h +++ b/Source/cmTarget.h @@ -95,8 +95,10 @@ public: */ enum LinkLibraryType {GENERAL, DEBUG, OPTIMIZED}; - typedef std::vector<std::pair<std::string,LinkLibraryType> > - LinkLibraryVectorType; + //* how we identify a library, by name and type + typedef std::pair<cmStdString, LinkLibraryType> LibraryID; + + typedef std::vector<LibraryID > LinkLibraryVectorType; const LinkLibraryVectorType &GetLinkLibraries() { return this->LinkLibraries;} const LinkLibraryVectorType &GetOriginalLinkLibraries() @@ -251,7 +253,7 @@ private: /** * A list of direct dependencies. Use in conjunction with DependencyMap. */ - typedef std::vector<cmStdString> DependencyList; + typedef std::vector< LibraryID > DependencyList; /** * This map holds the dependency graph. map[x] returns a set of @@ -259,27 +261,21 @@ private: * ordered. This is necessary to handle direct dependencies that * themselves have no dependency information. */ - typedef std::map< cmStdString, std::vector< cmStdString > > DependencyMap; - - /** - * Maps a library name to its internal structure - */ - typedef std::map< cmStdString, std::pair<cmStdString,LinkLibraryType> > - LibTypeMap; + typedef std::map< LibraryID, DependencyList > DependencyMap; /** * Inserts \a dep at the end of the dependency list of \a lib. */ void InsertDependency( DependencyMap& depMap, - const cmStdString& lib, - const cmStdString& dep ); + const LibraryID& lib, + const LibraryID& dep); /* * Deletes \a dep from the dependency list of \a lib. */ void DeleteDependency( DependencyMap& depMap, - const cmStdString& lib, - const cmStdString& dep ); + const LibraryID& lib, + const LibraryID& dep); /** * Emits the library \a lib and all its dependencies into link_line. @@ -289,18 +285,19 @@ private: * link_line is in reverse order, in that the dependencies of a * library are listed before the library itself. */ - void Emit( const std::string& lib, + void Emit( const LibraryID lib, const DependencyMap& dep_map, - std::set<cmStdString>& emitted, - std::set<cmStdString>& visited, - std::vector<std::string>& link_line ); + std::set<LibraryID>& emitted, + std::set<LibraryID>& visited, + DependencyList& link_line); /** * Finds the dependencies for \a lib and inserts them into \a * dep_map. */ - void GatherDependencies( const cmMakefile& mf, const std::string& lib, - DependencyMap& dep_map ); + void GatherDependencies( const cmMakefile& mf, + const LibraryID& lib, + DependencyMap& dep_map); const char* GetSuffixVariableInternal(TargetType type, bool implib); const char* GetPrefixVariableInternal(TargetType type, bool implib); |