summaryrefslogtreecommitdiffstats
path: root/Source/cmCollectFlags.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmCollectFlags.cxx')
-rw-r--r--Source/cmCollectFlags.cxx30
1 files changed, 30 insertions, 0 deletions
diff --git a/Source/cmCollectFlags.cxx b/Source/cmCollectFlags.cxx
index c936718..6e7e33c 100644
--- a/Source/cmCollectFlags.cxx
+++ b/Source/cmCollectFlags.cxx
@@ -1,4 +1,5 @@
#include "cmCollectFlags.h"
+#include "cmMakefile.h"
#include "cmSystemTools.h"
#include <fstream>
#include <iterator>
@@ -107,3 +108,32 @@ void cmCollectFlags::ParseDirectory(const char* dir)
this->ParseDirectory(dotdotDir.c_str());
}
}
+
+
+// expance CMAKE_BINARY_DIR and CMAKE_SOURCE_ROOT in the
+// include and library directories.
+
+void cmCollectFlags::ExpandVaribles(cmMakefile* makefile)
+{
+ // Now replace varibles
+ std::vector<std::string>& includes = m_IncludeDirectories;
+ std::vector<std::string>::iterator j, begin, end;
+ begin = m_IncludeDirectories.begin();
+ end = m_IncludeDirectories.end();
+ for(j = begin; j != end; ++j)
+ {
+ cmSystemTools::ReplaceString(*j, "${CMAKE_BINARY_DIR}",
+ makefile->GetOutputHomeDirectory() );
+ cmSystemTools::ReplaceString(*j, "${CMAKE_SOURCE_ROOT}",
+ makefile->GetHomeDirectory() );
+ }
+ begin = m_LinkDirectories.begin();
+ end = m_LinkDirectories.end();
+ for(j = begin; j != end; ++j)
+ {
+ cmSystemTools::ReplaceString(*j, "${CMAKE_BINARY_DIR}",
+ makefile->GetOutputHomeDirectory() );
+ cmSystemTools::ReplaceString(*j, "${CMAKE_SOURCE_ROOT}",
+ makefile->GetHomeDirectory() );
+ }
+}