Browse Source

Re-factor OS X content generator start up.

Nicolas Despres 13 years ago
parent
commit
c3988ee871

+ 2 - 12
Source/cmMakefileTargetGenerator.cxx

@@ -367,18 +367,8 @@ cmMakefileTargetGenerator::MacOSXContentGeneratorType::operator()
     return;
     }
 
-  // Construct the full path to the content subdirectory.
-  std::string macdir = this->Generator->MacContentDirectory;
-  macdir += pkgloc;
-  cmSystemTools::MakeDirectory(macdir.c_str());
-
-  // Record use of this content location.  Only the first level
-  // directory is needed.
-  {
-  std::string loc = pkgloc;
-  loc = loc.substr(0, loc.find('/'));
-  this->Generator->MacContentFolders.insert(loc);
-  }
+  std::string macdir =
+    this->Generator->OSXBundleGenerator->InitMacOSXContentDirectory(pkgloc);
 
   // Get the input file location.
   std::string input = source.GetFullPath();

+ 1 - 12
Source/cmNinjaTargetGenerator.cxx

@@ -664,19 +664,8 @@ cmNinjaTargetGenerator::MacOSXContentGeneratorType::operator()(
     return;
     }
 
-  // Construct the full path to the content subdirectory.
   std::string macdir =
-    this->Generator->OSXBundleGenerator->GetMacContentDirectory();
-  macdir += pkgloc;
-  cmSystemTools::MakeDirectory(macdir.c_str());
-
-  // Record use of this content location.  Only the first level
-  // directory is needed.
-  {
-  std::string loc = pkgloc;
-  loc = loc.substr(0, loc.find('/'));
-  this->Generator->MacContentFolders.insert(loc);
-  }
+    this->Generator->OSXBundleGenerator->InitMacOSXContentDirectory(pkgloc);
 
   // Get the input file location.
   std::string input = source.GetFullPath();

+ 20 - 0
Source/cmOSXBundleGenerator.cxx

@@ -214,3 +214,23 @@ GenerateMacOSXContentStatements(std::vector<cmSourceFile*> const& sources,
       }
     }
 }
+
+//----------------------------------------------------------------------------
+std::string
+cmOSXBundleGenerator::InitMacOSXContentDirectory(const char* pkgloc)
+{
+  // Construct the full path to the content subdirectory.
+  std::string macdir = this->MacContentDirectory;
+  macdir += pkgloc;
+  cmSystemTools::MakeDirectory(macdir.c_str());
+
+  // Record use of this content location.  Only the first level
+  // directory is needed.
+  {
+  std::string loc = pkgloc;
+  loc = loc.substr(0, loc.find('/'));
+  this->MacContentFolders->insert(loc);
+  }
+
+  return macdir;
+}

+ 1 - 0
Source/cmOSXBundleGenerator.h

@@ -44,6 +44,7 @@ public:
   void GenerateMacOSXContentStatements(
     std::vector<cmSourceFile*> const& sources,
     MacOSXContentGeneratorType* generator);
+  std::string InitMacOSXContentDirectory(const char* pkgloc);
 
   std::string GetMacContentDirectory() const
   { return this->MacContentDirectory; }