Browse Source

Refactor Makefile/Ninja tool working directory storage

Move cmCommonTargetGenerator::WorkingDirectory to cmLocalCommonGenerator
and add an access method.
Brad King 9 years ago
parent
commit
0392f72bef

+ 6 - 6
Source/cmCommonTargetGenerator.cxx

@@ -19,10 +19,8 @@
 #include "cmSourceFile.h"
 #include "cmSourceFile.h"
 #include "cmSystemTools.h"
 #include "cmSystemTools.h"
 
 
-cmCommonTargetGenerator::cmCommonTargetGenerator(
-  cmOutputConverter::RelativeRoot wd, cmGeneratorTarget* gt)
-  : WorkingDirectory(wd)
-  , GeneratorTarget(gt)
+cmCommonTargetGenerator::cmCommonTargetGenerator(cmGeneratorTarget* gt)
+  : GeneratorTarget(gt)
   , Makefile(gt->Makefile)
   , Makefile(gt->Makefile)
   , LocalGenerator(static_cast<cmLocalCommonGenerator*>(gt->LocalGenerator))
   , LocalGenerator(static_cast<cmLocalCommonGenerator*>(gt->LocalGenerator))
   , GlobalGenerator(static_cast<cmGlobalCommonGenerator*>(
   , GlobalGenerator(static_cast<cmGlobalCommonGenerator*>(
@@ -140,7 +138,8 @@ void cmCommonTargetGenerator::AddFortranFlags(std::string& flags)
   std::string mod_dir = this->GetFortranModuleDirectory();
   std::string mod_dir = this->GetFortranModuleDirectory();
   if (!mod_dir.empty()) {
   if (!mod_dir.empty()) {
     mod_dir =
     mod_dir =
-      this->Convert(mod_dir, this->WorkingDirectory, cmOutputConverter::SHELL);
+      this->Convert(mod_dir, this->LocalGenerator->GetWorkingDirectory(),
+                    cmOutputConverter::SHELL);
   } else {
   } else {
     mod_dir =
     mod_dir =
       this->Makefile->GetSafeDefinition("CMAKE_Fortran_MODDIR_DEFAULT");
       this->Makefile->GetSafeDefinition("CMAKE_Fortran_MODDIR_DEFAULT");
@@ -308,7 +307,8 @@ std::string cmCommonTargetGenerator::GetManifests()
   for (std::vector<cmSourceFile const*>::iterator mi = manifest_srcs.begin();
   for (std::vector<cmSourceFile const*>::iterator mi = manifest_srcs.begin();
        mi != manifest_srcs.end(); ++mi) {
        mi != manifest_srcs.end(); ++mi) {
     manifests.push_back(this->Convert(
     manifests.push_back(this->Convert(
-      (*mi)->GetFullPath(), this->WorkingDirectory, cmOutputConverter::SHELL));
+      (*mi)->GetFullPath(), this->LocalGenerator->GetWorkingDirectory(),
+      cmOutputConverter::SHELL));
   }
   }
 
 
   return cmJoin(manifests, " ");
   return cmJoin(manifests, " ");

+ 1 - 3
Source/cmCommonTargetGenerator.h

@@ -28,8 +28,7 @@ class cmSourceFile;
 class cmCommonTargetGenerator
 class cmCommonTargetGenerator
 {
 {
 public:
 public:
-  cmCommonTargetGenerator(cmOutputConverter::RelativeRoot wd,
-                          cmGeneratorTarget* gt);
+  cmCommonTargetGenerator(cmGeneratorTarget* gt);
   virtual ~cmCommonTargetGenerator();
   virtual ~cmCommonTargetGenerator();
 
 
   std::string const& GetConfigName() const;
   std::string const& GetConfigName() const;
@@ -45,7 +44,6 @@ protected:
   // Helper to add flag for windows .def file.
   // Helper to add flag for windows .def file.
   void AddModuleDefinitionFlag(std::string& flags);
   void AddModuleDefinitionFlag(std::string& flags);
 
 
-  cmOutputConverter::RelativeRoot WorkingDirectory;
   cmGeneratorTarget* GeneratorTarget;
   cmGeneratorTarget* GeneratorTarget;
   cmMakefile* Makefile;
   cmMakefile* Makefile;
   cmLocalCommonGenerator* LocalGenerator;
   cmLocalCommonGenerator* LocalGenerator;

+ 3 - 2
Source/cmLocalCommonGenerator.cxx

@@ -13,9 +13,10 @@
 
 
 #include "cmMakefile.h"
 #include "cmMakefile.h"
 
 
-cmLocalCommonGenerator::cmLocalCommonGenerator(cmGlobalGenerator* gg,
-                                               cmMakefile* mf)
+cmLocalCommonGenerator::cmLocalCommonGenerator(
+  cmGlobalGenerator* gg, cmMakefile* mf, cmOutputConverter::RelativeRoot wd)
   : cmLocalGenerator(gg, mf)
   : cmLocalGenerator(gg, mf)
+  , WorkingDirectory(wd)
 {
 {
 }
 }
 
 

+ 9 - 1
Source/cmLocalCommonGenerator.h

@@ -22,12 +22,20 @@ class cmCommonTargetGenerator;
 class cmLocalCommonGenerator : public cmLocalGenerator
 class cmLocalCommonGenerator : public cmLocalGenerator
 {
 {
 public:
 public:
-  cmLocalCommonGenerator(cmGlobalGenerator* gg, cmMakefile* mf);
+  cmLocalCommonGenerator(cmGlobalGenerator* gg, cmMakefile* mf,
+                         cmOutputConverter::RelativeRoot wd);
   ~cmLocalCommonGenerator();
   ~cmLocalCommonGenerator();
 
 
   std::string const& GetConfigName() { return this->ConfigName; }
   std::string const& GetConfigName() { return this->ConfigName; }
 
 
+  cmOutputConverter::RelativeRoot GetWorkingDirectory() const
+  {
+    return this->WorkingDirectory;
+  }
+
 protected:
 protected:
+  cmOutputConverter::RelativeRoot WorkingDirectory;
+
   void SetConfigName();
   void SetConfigName();
   std::string ConfigName;
   std::string ConfigName;
 
 

+ 1 - 1
Source/cmLocalNinjaGenerator.cxx

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

+ 1 - 1
Source/cmLocalUnixMakefileGenerator3.cxx

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

+ 1 - 1
Source/cmMakefileTargetGenerator.cxx

@@ -32,7 +32,7 @@
 #include <ctype.h>
 #include <ctype.h>
 
 
 cmMakefileTargetGenerator::cmMakefileTargetGenerator(cmGeneratorTarget* target)
 cmMakefileTargetGenerator::cmMakefileTargetGenerator(cmGeneratorTarget* target)
-  : cmCommonTargetGenerator(cmOutputConverter::START_OUTPUT, target)
+  : cmCommonTargetGenerator(target)
   , OSXBundleGenerator(0)
   , OSXBundleGenerator(0)
   , MacOSXContentGenerator(0)
   , MacOSXContentGenerator(0)
 {
 {

+ 1 - 1
Source/cmNinjaTargetGenerator.cxx

@@ -58,7 +58,7 @@ cmNinjaTargetGenerator* cmNinjaTargetGenerator::New(cmGeneratorTarget* target)
 }
 }
 
 
 cmNinjaTargetGenerator::cmNinjaTargetGenerator(cmGeneratorTarget* target)
 cmNinjaTargetGenerator::cmNinjaTargetGenerator(cmGeneratorTarget* target)
-  : cmCommonTargetGenerator(cmOutputConverter::HOME_OUTPUT, target)
+  : cmCommonTargetGenerator(target)
   , MacOSXContentGenerator(0)
   , MacOSXContentGenerator(0)
   , OSXBundleGenerator(0)
   , OSXBundleGenerator(0)
   , MacContentFolders()
   , MacContentFolders()