diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2006-01-03 21:40:51 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2006-01-03 21:40:51 (GMT) |
commit | 2c73d2e0f3c5ab4da8ef78bd99309522c05349a0 (patch) | |
tree | fac80fa3d96669f88059ad5ca5fb847b9b1bad7b /Source/cmMakefile.cxx | |
parent | b08a151722ecb23383079f27389313f34ceba6cd (diff) | |
download | CMake-2c73d2e0f3c5ab4da8ef78bd99309522c05349a0.zip CMake-2c73d2e0f3c5ab4da8ef78bd99309522c05349a0.tar.gz CMake-2c73d2e0f3c5ab4da8ef78bd99309522c05349a0.tar.bz2 |
ENH: add new cmakedefine01 feature from bug report 2603
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index d47832e..2745905 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -74,7 +74,8 @@ cmMakefile::cmMakefile() this->AddSourceGroup("Header Files", "\\.(h|h\\+\\+|hm|hpp|hxx|in|txx|inl)$"); this->AddSourceGroup("CMake Rules", "\\.rule$"); this->AddDefaultDefinitions(); - m_cmDefineRegex.compile("#cmakedefine[ \t]*([A-Za-z_0-9]*)"); + m_cmDefineRegex.compile("#cmakedefine[ \t]+([A-Za-z_0-9]*)"); + m_cmDefine01Regex.compile("#cmakedefine01[ \t]+([A-Za-z_0-9]*)"); this->PreOrder = false; } @@ -2399,6 +2400,20 @@ void cmMakefile::ConfigureString(const std::string& input, output += " */"; } } + else if(m_cmDefine01Regex.find(line)) + { + const char* def = this->GetDefinition(m_cmDefine01Regex.match(1).c_str()); + cmSystemTools::ReplaceString(line, "#cmakedefine01", "#define"); + output += line; + if(!cmSystemTools::IsOff(def)) + { + output += " 1"; + } + else + { + output += " 0"; + } + } else { output += line; |