浏览代码

cmMakefile: Remove special handling of INCLUDE_REGULAR_EXPRESSION.

It costs an extra cmMakefile member and extra code to maintain in
directory property handling.  Remove documentation note that it
is read-only and specify high-level command to populate it.
Stephen Kelly 10 年之前
父节点
当前提交
4efda261fe
共有 4 个文件被更改,包括 7 次插入19 次删除
  1. 3 2
      Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
  2. 1 1
      Source/cmMakeDepend.cxx
  3. 1 13
      Source/cmMakefile.cxx
  4. 2 3
      Source/cmMakefile.h

+ 3 - 2
Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst

@@ -3,6 +3,7 @@ INCLUDE_REGULAR_EXPRESSION
 
 Include file scanning regular expression.
 
-This read-only property specifies the regular expression used during
+This property specifies the regular expression used during
 dependency scanning to match include files that should be followed.
-See the include_regular_expression command.
+See the :command:`include_regular_expression` command for a high-level
+interface to set this property.

+ 1 - 1
Source/cmMakeDepend.cxx

@@ -49,7 +49,7 @@ void cmMakeDepend::SetMakefile(cmMakefile* makefile)
 
   // Now extract the include file regular expression from the makefile.
   this->IncludeFileRegularExpression.compile(
-    this->Makefile->IncludeFileRegularExpression.c_str());
+    this->Makefile->GetIncludeRegularExpression());
   this->ComplainFileRegularExpression.compile(
     this->Makefile->ComplainFileRegularExpression.c_str());
 

+ 1 - 13
Source/cmMakefile.cxx

@@ -150,7 +150,7 @@ cmMakefile::cmMakefile(cmLocalGenerator* localGenerator)
   this->SuppressWatches = false;
 
   // Setup the default include file regular expression (match everything).
-  this->IncludeFileRegularExpression = "^.*$";
+  this->SetProperty("INCLUDE_REGULAR_EXPRESSION", "^.*$");
   // Setup the default include complaint regular expression (match nothing).
   this->ComplainFileRegularExpression = "^$";
   // Source and header file extensions that we can handle
@@ -1613,7 +1613,6 @@ void cmMakefile::InitializeFromParent(cmMakefile* parent)
   this->ProjectName = parent->ProjectName;
 
   // Copy include regular expressions.
-  this->IncludeFileRegularExpression = parent->IncludeFileRegularExpression;
   this->ComplainFileRegularExpression = parent->ComplainFileRegularExpression;
 
   // Imported targets.
@@ -4193,12 +4192,6 @@ void cmMakefile::SetProperty(const std::string& prop, const char* value)
     return;
     }
 
-  if ( prop == "INCLUDE_REGULAR_EXPRESSION" )
-    {
-    this->SetIncludeRegularExpression(value);
-    return;
-    }
-
   this->Properties.SetProperty(prop, value);
 }
 
@@ -4265,11 +4258,6 @@ const char *cmMakefile::GetProperty(const std::string& prop,
       }
     return "";
     }
-  else if (prop == "INCLUDE_REGULAR_EXPRESSION" )
-    {
-    output = this->GetIncludeRegularExpression();
-    return output.c_str();
-    }
   else if (prop == "LISTFILE_STACK")
     {
     output = cmJoin(this->ListFileStack, ";");

+ 2 - 3
Source/cmMakefile.h

@@ -387,11 +387,11 @@ public:
    */
   void SetIncludeRegularExpression(const char* regex)
     {
-      this->IncludeFileRegularExpression = regex;
+      this->SetProperty("INCLUDE_REGULAR_EXPRESSION", regex);
     }
   const char* GetIncludeRegularExpression() const
     {
-      return this->IncludeFileRegularExpression.c_str();
+      return this->GetProperty("INCLUDE_REGULAR_EXPRESSION");
     }
 
   /**
@@ -873,7 +873,6 @@ protected:
   std::vector<cmInstallGenerator*> InstallGenerators;
   std::vector<cmTestGenerator*> TestGenerators;
 
-  std::string IncludeFileRegularExpression;
   std::string ComplainFileRegularExpression;
   std::vector<std::string> SourceFileExtensions;
   std::vector<std::string> HeaderFileExtensions;