Browse Source

minor cvs web changeCMakeLists.txt

Ken Martin 24 years ago
parent
commit
521e301116
3 changed files with 45 additions and 2 deletions
  1. 2 0
      CMakeLists.txt
  2. 34 2
      Source/cmTarget.cxx
  3. 9 0
      Source/cmTarget.h

+ 2 - 0
CMakeLists.txt

@@ -30,6 +30,8 @@ IF (BUILD_TESTING)
   # Dart server configuration 
   SET (CVS_WEB_URL "http://${DROP_SITE}/cgi-bin/cmakecvsweb.cgi/CMake/" 
        CACHE INTERNAL "URL for revision control system")
+  SET (CVS_WEB_CVSROOT "CMake" CACHE INTERNAL 
+       "Symbolic name for the CVSROOT in cvsweb")
   SET (DOXYGEN_URL "http://${DROP_SITE}/CMake/Doxygen/html/" 
        CACHE INTERNAL "URL for source code documentation")
   SET (GNATS_WEB_URL "http://${DROP_SITE}/cgi-bin/gnatsweb.pl/CMake/" 

+ 34 - 2
Source/cmTarget.cxx

@@ -61,7 +61,27 @@ void cmTarget::GenerateSourceFilesFromSourceLists(const cmMakefile &mf)
       {
       const std::vector<cmSourceFile> &clsList = 
         mf.GetSources().find(temps)->second;
-      m_SourceFiles.insert(m_SourceFiles.end(), clsList.begin(), clsList.end());
+      // if we ahave a limited build list, use it
+      if (m_LimitedBuildList.empty())
+        {
+        m_SourceFiles.insert(m_SourceFiles.end(), 
+                             clsList.begin(), 
+                             clsList.end());
+        }
+      else
+        {
+        std::vector<cmSourceFile>::const_iterator si = clsList.begin();
+        for (; si != clsList.end(); ++si)
+          {
+          // is it on the approved list ?
+          if (std::find(m_LimitedBuildList.begin(),
+                   m_LimitedBuildList.end(),
+                   si->GetFullPath()) != m_LimitedBuildList.end())
+            {
+            m_SourceFiles.push_back(*si);
+            }
+          }
+        }
       }
     // if one wasn't found then assume it is a single class
     else
@@ -69,7 +89,19 @@ void cmTarget::GenerateSourceFilesFromSourceLists(const cmMakefile &mf)
       cmSourceFile file;
       file.SetIsAnAbstractClass(false);
       file.SetName(temps.c_str(), mf.GetCurrentDirectory());
-      m_SourceFiles.push_back(file);
+      if (m_LimitedBuildList.empty())
+        {
+        m_SourceFiles.push_back(file);
+        }
+      else
+        {
+        if (std::find(m_LimitedBuildList.begin(),
+                 m_LimitedBuildList.end(),
+                 file.GetFullPath()) != m_LimitedBuildList.end())
+          {
+          m_SourceFiles.push_back(file);
+          }
+        }
       }
     }
 

+ 9 - 0
Source/cmTarget.h

@@ -86,6 +86,13 @@ public:
     {return m_SourceLists;}
   std::vector<std::string> &GetSourceLists() {return m_SourceLists;}
   
+  /**
+   * Get the list of the source lists used by this target
+   */
+  const std::vector<std::string> &GetLimitedBuildList() const 
+    {return m_LimitedBuildList;}
+  std::vector<std::string> &GetLimitedBuildList() {return m_LimitedBuildList;}
+  
   /**
    * Get the list of the source files used by this target
    */
@@ -126,7 +133,9 @@ public:
   void AddUtility(const char* u) { m_Utilities.insert(u);}
   ///! Get the utilities used by this target
   std::set<std::string>const& GetUtilities() const { return m_Utilities; }
+
 private:
+  std::vector<std::string> m_LimitedBuildList;
   std::vector<cmCustomCommand> m_CustomCommands;
   std::vector<std::string> m_SourceLists;
   TargetType m_TargetType;