diff options
Diffstat (limited to 'Source/cmCollectFlags.cxx')
-rw-r--r-- | Source/cmCollectFlags.cxx | 30 |
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() ); + } +} |