瀏覽代碼

Common: Use a string instead of enum for WorkingDirectory

Stephen Kelly 9 年之前
父節點
當前提交
dc51091944

+ 3 - 2
Source/cmCommonTargetGenerator.cxx

@@ -204,8 +204,9 @@ std::string cmCommonTargetGenerator::GetManifests()
   std::vector<std::string> manifests;
   for (std::vector<cmSourceFile const*>::iterator mi = manifest_srcs.begin();
        mi != manifest_srcs.end(); ++mi) {
-    manifests.push_back(this->Convert(
-      (*mi)->GetFullPath(), this->LocalGenerator->GetWorkingDirectory(),
+    manifests.push_back(this->LocalGenerator->ConvertToOutputFormat(
+      this->LocalGenerator->ConvertToRelativePath(
+        this->LocalGenerator->GetWorkingDirectory(), (*mi)->GetFullPath()),
       cmOutputConverter::SHELL));
   }
 

+ 6 - 4
Source/cmLocalCommonGenerator.cxx

@@ -18,8 +18,9 @@
 
 class cmGlobalGenerator;
 
-cmLocalCommonGenerator::cmLocalCommonGenerator(
-  cmGlobalGenerator* gg, cmMakefile* mf, cmOutputConverter::RelativeRoot wd)
+cmLocalCommonGenerator::cmLocalCommonGenerator(cmGlobalGenerator* gg,
+                                               cmMakefile* mf,
+                                               std::string const& wd)
   : cmLocalGenerator(gg, mf)
   , WorkingDirectory(wd)
 {
@@ -55,8 +56,9 @@ std::string cmLocalCommonGenerator::GetTargetFortranFlags(
   // Add a module output directory flag if necessary.
   std::string mod_dir = target->GetFortranModuleDirectory();
   if (!mod_dir.empty()) {
-    mod_dir =
-      this->Convert(mod_dir, this->WorkingDirectory, cmOutputConverter::SHELL);
+    mod_dir = this->ConvertToOutputFormat(
+      this->ConvertToRelativePath(this->WorkingDirectory, mod_dir),
+      cmOutputConverter::SHELL);
   } else {
     mod_dir =
       this->Makefile->GetSafeDefinition("CMAKE_Fortran_MODDIR_DEFAULT");

+ 3 - 6
Source/cmLocalCommonGenerator.h

@@ -30,21 +30,18 @@ class cmLocalCommonGenerator : public cmLocalGenerator
 {
 public:
   cmLocalCommonGenerator(cmGlobalGenerator* gg, cmMakefile* mf,
-                         cmOutputConverter::RelativeRoot wd);
+                         std::string const& wd);
   ~cmLocalCommonGenerator() CM_OVERRIDE;
 
   std::string const& GetConfigName() { return this->ConfigName; }
 
-  cmOutputConverter::RelativeRoot GetWorkingDirectory() const
-  {
-    return this->WorkingDirectory;
-  }
+  std::string GetWorkingDirectory() const { return this->WorkingDirectory; }
 
   std::string GetTargetFortranFlags(cmGeneratorTarget const* target,
                                     std::string const& config) CM_OVERRIDE;
 
 protected:
-  cmOutputConverter::RelativeRoot WorkingDirectory;
+  std::string WorkingDirectory;
 
   void SetConfigName();
   std::string ConfigName;

+ 1 - 1
Source/cmLocalNinjaGenerator.cxx

@@ -34,7 +34,7 @@
 
 cmLocalNinjaGenerator::cmLocalNinjaGenerator(cmGlobalGenerator* gg,
                                              cmMakefile* mf)
-  : cmLocalCommonGenerator(gg, mf, cmOutputConverter::HOME_OUTPUT)
+  : cmLocalCommonGenerator(gg, mf, mf->GetState()->GetBinaryDirectory())
   , HomeRelativeOutputPath("")
 {
   this->TargetImplib = "$TARGET_IMPLIB";

+ 1 - 1
Source/cmLocalUnixMakefileGenerator3.cxx

@@ -94,7 +94,7 @@ static std::string cmSplitExtension(std::string const& in, std::string& base)
 
 cmLocalUnixMakefileGenerator3::cmLocalUnixMakefileGenerator3(
   cmGlobalGenerator* gg, cmMakefile* mf)
-  : cmLocalCommonGenerator(gg, mf, cmOutputConverter::START_OUTPUT)
+  : cmLocalCommonGenerator(gg, mf, mf->GetCurrentBinaryDirectory())
 {
   this->MakefileVariableSize = 0;
   this->ColorMakefile = false;