summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorTarget.h
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-08-05 16:55:14 (GMT)
committerStephen Kelly <steveire@gmail.com>2015-10-08 23:04:38 (GMT)
commit0bae4a416f9f1b9090499d26f8508660f4f3fc95 (patch)
treec1bf8a9d022cd056dbdb3ffa9278885f001be461 /Source/cmGeneratorTarget.h
parent1abc20d81df3ee9845904b356960870526fe3276 (diff)
downloadCMake-0bae4a416f9f1b9090499d26f8508660f4f3fc95.zip
CMake-0bae4a416f9f1b9090499d26f8508660f4f3fc95.tar.gz
CMake-0bae4a416f9f1b9090499d26f8508660f4f3fc95.tar.bz2
cmGeneratorTarget: Move output info from cmTarget.
Diffstat (limited to 'Source/cmGeneratorTarget.h')
-rw-r--r--Source/cmGeneratorTarget.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index a1ad477..77d3b99 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -289,6 +289,18 @@ public:
directory. */
bool UsesDefaultOutputDir(const std::string& config, bool implib) const;
+ // Cache target output paths for each configuration.
+ struct OutputInfo
+ {
+ std::string OutDir;
+ std::string ImpDir;
+ std::string PdbDir;
+ bool empty() const
+ { return OutDir.empty() && ImpDir.empty() && PdbDir.empty(); }
+ };
+
+ OutputInfo const* GetOutputInfo(const std::string& config) const;
+
/** Get the name of the pdb file for the target. */
std::string GetPDBName(const std::string& config="") const;
@@ -495,6 +507,12 @@ private:
cmLinkImplementationLibraries const*
GetLinkImplementationLibrariesInternal(const std::string& config,
cmTarget const* head) const;
+ bool
+ ComputeOutputDir(const std::string& config,
+ bool implib, std::string& out) const;
+
+ typedef std::map<std::string, OutputInfo> OutputInfoMapType;
+ mutable OutputInfoMapType OutputInfoMap;
typedef std::pair<std::string, bool> OutputNameKey;
typedef std::map<OutputNameKey, std::string> OutputNameMapType;