summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2001-06-13 17:49:24 (GMT)
committerKen Martin <ken.martin@kitware.com>2001-06-13 17:49:24 (GMT)
commit521e301116481f9f9396ee3fa13b8c1b87274d8c (patch)
treeeb1ff8a59eff9b23996aa09f348dab0ef8eb8154 /Source
parent03817a41cfc48707852e30d57f608f90d4f74427 (diff)
downloadCMake-521e301116481f9f9396ee3fa13b8c1b87274d8c.zip
CMake-521e301116481f9f9396ee3fa13b8c1b87274d8c.tar.gz
CMake-521e301116481f9f9396ee3fa13b8c1b87274d8c.tar.bz2
minor cvs web changeCMakeLists.txt
Diffstat (limited to 'Source')
-rw-r--r--Source/cmTarget.cxx36
-rw-r--r--Source/cmTarget.h9
2 files changed, 43 insertions, 2 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 2472b34..26e4ff3 100644
--- a/Source/cmTarget.cxx
+++ b/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);
+ }
+ }
}
}
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 89068ed..50d81d7 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -87,6 +87,13 @@ public:
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
*/
const std::vector<cmSourceFile> &GetSourceFiles() const
@@ -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;