Przeglądaj źródła

Makefile: Fix per-config linker PDB output directory

Also, now that all call sites of cmTarget::GetPDBName and
cmTarget::GetPDBDirectory pass the configuration, make the
argument non-optional.
Brad King 11 lat temu
rodzic
commit
b4aac0caca

+ 1 - 1
Source/cmMakefileExecutableTargetGenerator.cxx

@@ -129,7 +129,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
       }
     }
 
-  std::string pdbOutputPath = this->Target->GetPDBDirectory();
+  std::string pdbOutputPath = this->Target->GetPDBDirectory(this->ConfigName);
   cmSystemTools::MakeDirectory(pdbOutputPath.c_str());
   pdbOutputPath += "/";
 

+ 1 - 1
Source/cmMakefileLibraryTargetGenerator.cxx

@@ -321,7 +321,7 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
       }
     }
 
-  std::string pdbOutputPath = this->Target->GetPDBDirectory();
+  std::string pdbOutputPath = this->Target->GetPDBDirectory(this->ConfigName);
   cmSystemTools::MakeDirectory(pdbOutputPath.c_str());
   pdbOutputPath += "/";
 

+ 2 - 2
Source/cmTarget.h

@@ -340,7 +340,7 @@ public:
       If the configuration name is given then the generator will add its
       subdirectory for that configuration.  Otherwise just the canonical
       pdb output directory is given.  */
-  std::string GetPDBDirectory(const char* config = 0) const;
+  std::string GetPDBDirectory(const char* config) const;
 
   /** Get the location of the target in the build tree for the given
       configuration.  This location is suitable for use as the LOCATION
@@ -375,7 +375,7 @@ public:
                              const char* config=0, bool implib = false) const;
 
   /** Get the name of the pdb file for the target.  */
-  std::string GetPDBName(const char* config=0) const;
+  std::string GetPDBName(const char* config) const;
 
   /** Whether this library has soname enabled and platform supports it.  */
   bool HasSOName(const char* config) const;