Просмотр исходного кода

system config uses cmake commands now

Ken Martin 25 лет назад
Родитель
Сommit
fc1562f004

+ 8 - 0
CMakeSystemConfig.cmake.in

@@ -0,0 +1,8 @@
+# 
+# CMakeLocal.make.in should be in the directory where you run configure
+# in, which need not be the source directory
+#
+SET (WORDS_BIGENDIAN @WORDS_BIGENDIAN@)
+SET (HAVE_LIMITS_H   @HAVE_LIMITS_H@)
+SET (HAVE_UNISTD_H   @HAVE_UNISTD_H@)
+

+ 3 - 3
CMakeSystemConfig.txt.in

@@ -2,7 +2,7 @@
 # CMakeLocal.make.in should be in the directory where you run configure
 # in, which need not be the source directory
 #
-Define WORDS_BIGENDIAN @WORDS_BIGENDIAN@
-Define HAVE_LIMITS_H   @HAVE_LIMITS_H@
-Define HAVE_UNISTD_H   @HAVE_UNISTD_H@
+SET (WORDS_BIGENDIAN @WORDS_BIGENDIAN@)
+SET (HAVE_LIMITS_H   @HAVE_LIMITS_H@)
+SET (HAVE_UNISTD_H   @HAVE_UNISTD_H@)
 

+ 8 - 0
CMakeWindowsSystemConfig.cmake

@@ -0,0 +1,8 @@
+# 
+# CMakeLocal.make.in should be in the directory where you run configure
+# in, which need not be the source directory
+#
+SET (WORDS_BIGENDIAN )
+SET (HAVE_LIMITS_H   1)
+SET (HAVE_UNISTD_H   1)
+

+ 3 - 3
CMakeWindowsSystemConfig.txt

@@ -2,7 +2,7 @@
 # CMakeLocal.make.in should be in the directory where you run configure
 # in, which need not be the source directory
 #
-Define WORDS_BIGENDIAN 
-Define HAVE_LIMITS_H   1
-Define HAVE_UNISTD_H   1
+SET (WORDS_BIGENDIAN )
+SET (HAVE_LIMITS_H   1)
+SET (HAVE_UNISTD_H   1)
 

+ 11 - 37
Source/cmMakefile.cxx

@@ -87,37 +87,6 @@ void cmMakefile::AddDefaultCommands()
   
 }
 
-void cmMakefile::ReadSystemConfiguration(const char *fname)
-{
-  std::ifstream fin(fname);
-  if(!fin)
-    {
-    cmSystemTools::Error("error can not open file ", fname);
-    return;
-    }
-
-  cmRegularExpression aDef("^Define[ \t]*([A-Za-z_0-9]*)[ \t]*([A-Za-z_0-9]*)[ \t]*$");  
-  const int BUFFER_SIZE = 4096;
-  char inbuffer[BUFFER_SIZE];
-  while (fin)
-    {
-    if(fin.getline(inbuffer, BUFFER_SIZE ) )
-      {
-      if(aDef.find(inbuffer))
-        {
-        // the arguments are the second match
-        std::string def = aDef.match(1);
-        std::string val = aDef.match(2);
-        // add the definition if true
-        if (cmSystemTools::IsOn(val.c_str()))
-          {
-          this->AddDefinition(def.c_str(),val.c_str());
-          }
-        }
-      }
-    }
-}
-
 cmMakefile::~cmMakefile()
 {
   for(unsigned int i=0; i < m_UsedCommands.size(); i++)
@@ -201,7 +170,10 @@ bool cmMakefile::ReadListFile(const char* filename, const char* external)
 {
 
   // keep track of the current file being read
-  m_cmCurrentListFile= filename;
+  if (filename)
+    {
+    m_cmCurrentListFile= filename;
+    }
 
   // if this is not a remote makefile
   //  (if it were, this would be called from the "filename" call,
@@ -245,8 +217,10 @@ bool cmMakefile::ReadListFile(const char* filename, const char* external)
   const char *filenametoread= filename;
 
   if( external)
+    {
     filenametoread= external;
-
+    }
+  
   std::ifstream fin(filenametoread);
   if(!fin)
     {
@@ -884,8 +858,8 @@ void cmMakefile::SetHomeDirectory(const char* dir)
   this->AddDefinition("CMAKE_SOURCE_DIR", this->GetHomeDirectory());
 #if defined(_WIN32) && !defined(__CYGWIN__)
   std::string fpath = dir;
-  fpath += "/CMake/CMakeWindowsSystemConfig.txt";
-  this->ReadSystemConfiguration(fpath.c_str());
+  fpath += "/CMake/CMakeWindowsSystemConfig.cmake";
+  this->ReadListFile(NULL,fpath.c_str());
 #endif
 }
 
@@ -896,7 +870,7 @@ void cmMakefile::SetHomeOutputDirectory(const char* lib)
   this->AddDefinition("CMAKE_BINARY_DIR", this->GetHomeOutputDirectory());
 #if !defined(_WIN32) || defined(__CYGWIN__)
   std::string fpath = lib;
-  fpath += "/CMakeSystemConfig.txt";
-  this->ReadSystemConfiguration(fpath.c_str());
+  fpath += "/CMakeSystemConfig.cmake";
+  this->ReadListFile(NULL,fpath.c_str());
 #endif
 }

+ 0 - 5
Source/cmMakefile.h

@@ -467,11 +467,6 @@ public:
    */
   void GenerateCacheOnly();
 
-  /**
-   * find what source group this source is in
-   */
-  void ReadSystemConfiguration(const char *fname);
-  
   /**
    * find what source group this source is in
    */