Przeglądaj źródła

class cmake: Store working directory at cmake launch

Marc Chevrier 4 lat temu
rodzic
commit
f5fa6d53b0
2 zmienionych plików z 11 dodań i 1 usunięć
  1. 2 1
      Source/cmake.cxx
  2. 9 0
      Source/cmake.h

+ 2 - 1
Source/cmake.cxx

@@ -157,7 +157,8 @@ static void cmWarnUnusedCliWarning(const std::string& variable, int /*unused*/,
 #endif
 
 cmake::cmake(Role role, cmState::Mode mode)
-  : FileTimeCache(cm::make_unique<cmFileTimeCache>())
+  : CMakeWorkingDirectory(cmSystemTools::GetCurrentWorkingDirectory())
+  , FileTimeCache(cm::make_unique<cmFileTimeCache>())
 #ifndef CMAKE_BOOTSTRAP
   , VariableWatch(cm::make_unique<cmVariableWatch>())
 #endif

+ 9 - 0
Source/cmake.h

@@ -193,6 +193,14 @@ public:
   std::string const& GetHomeOutputDirectory() const;
   //@}
 
+  /**
+   * Working directory at CMake launch
+   */
+  std::string const& GetCMakeWorkingDirectory() const
+  {
+    return this->CMakeWorkingDirectory;
+  }
+
   /**
    * Handle a command line invocation of cmake.
    */
@@ -628,6 +636,7 @@ protected:
   void GenerateGraphViz(const std::string& fileName) const;
 
 private:
+  std::string CMakeWorkingDirectory;
   ProgressCallbackType ProgressCallback;
   WorkingMode CurrentWorkingMode = NORMAL_MODE;
   bool DebugOutput = false;