Browse Source

ENH: Pass config to cmTarget::GetDirectory()

This teaches the makefile generators to always pass the configuration
name to the cmTarget::GetDirectory method.  Later this will allow
per-configuration target output directories, and it cleans up use of the
current API.
Brad King 16 years ago
parent
commit
bde145a212

+ 3 - 3
Source/cmMakefileExecutableTargetGenerator.cxx

@@ -36,7 +36,7 @@ cmMakefileExecutableTargetGenerator
 
   if(this->Target->IsAppBundleOnApple())
     {
-    this->MacContentDirectory = this->Target->GetDirectory();
+    this->MacContentDirectory = this->Target->GetDirectory(this->ConfigName);
     this->MacContentDirectory += "/";
     this->MacContentDirectory += this->TargetNameOut;
     this->MacContentDirectory += ".app/Contents/";
@@ -126,7 +126,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
      this->ConfigName);
 
   // Construct the full path version of the names.
-  std::string outpath = this->Target->GetDirectory();
+  std::string outpath = this->Target->GetDirectory(this->ConfigName);
   outpath += "/";
   if(this->Target->IsAppBundleOnApple())
     {
@@ -150,7 +150,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
     cmSystemTools::MakeDirectory(outpath.c_str());
     if(!targetNameImport.empty())
       {
-      outpathImp = this->Target->GetDirectory(0, true);
+      outpathImp = this->Target->GetDirectory(this->ConfigName, true);
       cmSystemTools::MakeDirectory(outpathImp.c_str());
       outpathImp += "/";
       }

+ 4 - 4
Source/cmMakefileLibraryTargetGenerator.cxx

@@ -39,7 +39,7 @@ cmMakefileLibraryTargetGenerator
   if(this->Target->IsFrameworkOnApple())
     {
     this->FrameworkVersion = this->Target->GetFrameworkVersion();
-    this->MacContentDirectory = this->Target->GetDirectory();
+    this->MacContentDirectory = this->Target->GetDirectory(this->ConfigName);
     this->MacContentDirectory += "/";
     this->MacContentDirectory += this->TargetNameOut;
     this->MacContentDirectory += ".framework/Versions/";
@@ -245,7 +245,7 @@ cmMakefileLibraryTargetGenerator
   std::string newName;
 
   // Compute the location of the top-level foo.framework directory.
-  std::string top = this->Target->GetDirectory();
+  std::string top = this->Target->GetDirectory(this->ConfigName);
   top += "/";
   top += this->TargetNameOut;
   top += ".framework/";
@@ -406,12 +406,12 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
     }
   else
     {
-    outpath = this->Target->GetDirectory();
+    outpath = this->Target->GetDirectory(this->ConfigName);
     cmSystemTools::MakeDirectory(outpath.c_str());
     outpath += "/";
     if(!targetNameImport.empty())
       {
-      outpathImp = this->Target->GetDirectory(0, true);
+      outpathImp = this->Target->GetDirectory(this->ConfigName, true);
       cmSystemTools::MakeDirectory(outpathImp.c_str());
       outpathImp += "/";
       }

+ 1 - 1
Source/cmMakefileTargetGenerator.cxx

@@ -608,7 +608,7 @@ cmMakefileTargetGenerator
      this->Target->GetType() == cmTarget::SHARED_LIBRARY ||
      this->Target->GetType() == cmTarget::MODULE_LIBRARY)
     {
-    targetFullPathPDB = this->Target->GetDirectory();
+    targetFullPathPDB = this->Target->GetDirectory(this->ConfigName);
     targetFullPathPDB += "/";
     targetFullPathPDB += this->Target->GetPDBName(this->ConfigName);
     }