diff options
author | Ken Martin <ken.martin@kitware.com> | 2007-07-10 17:52:41 (GMT) |
---|---|---|
committer | Ken Martin <ken.martin@kitware.com> | 2007-07-10 17:52:41 (GMT) |
commit | 8c641677e996bd2434233f37da39b34d9000a740 (patch) | |
tree | f8c96aef5e4b11ecbb777051a8beb2b5c78d24b9 /Source/cmMakefile.cxx | |
parent | 15f21aa74c0b11e8d6b7eef010ed6067a09ed799 (diff) | |
download | CMake-8c641677e996bd2434233f37da39b34d9000a740.zip CMake-8c641677e996bd2434233f37da39b34d9000a740.tar.gz CMake-8c641677e996bd2434233f37da39b34d9000a740.tar.bz2 |
ENH: some cleanup of get property commands
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 0487313..fae8ad9 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -2614,6 +2614,79 @@ const char *cmMakefile::GetProperty(const char* prop, this->SetProperty("LISTFILE_STACK",tmp.c_str()); } + // some other special properties sigh + std::string output = ""; + if (!strcmp("VARIABLES",prop) || !strcmp("CACHE_VARIABLES",prop)) + { + int cacheonly = 0; + if ( !strcmp("CACHE_VARIABLES",prop) ) + { + cacheonly = 1; + } + std::vector<std::string> vars = this->GetDefinitions(cacheonly); + for (unsigned int cc = 0; cc < vars.size(); cc ++ ) + { + if ( cc > 0 ) + { + output += ";"; + } + output += vars[cc]; + } + this->SetProperty(prop, output.c_str()); + } + else if (!strcmp("MACROS",prop)) + { + this->GetListOfMacros(output); + this->SetProperty(prop, output.c_str()); + } + else if (!strcmp("DEFINITIONS",prop)) + { + output = this->GetDefineFlags(); + this->SetProperty(prop, output.c_str()); + } + else if (!strcmp("INCLUDE_DIRECTORIES",prop) ) + { + std::vector<std::string>::iterator it; + int first = 1; + cmOStringStream str; + for ( it = this->GetIncludeDirectories().begin(); + it != this->GetIncludeDirectories().end(); + ++ it ) + { + if ( !first ) + { + str << ";"; + } + str << it->c_str(); + first = 0; + } + output = str.str(); + this->SetProperty(prop, output.c_str()); + } + else if (!strcmp("INCLUDE_REGULAR_EXPRESSION",prop) ) + { + return this->GetIncludeRegularExpression(); + } + else if (!strcmp("LINK_DIRECTORIES",prop)) + { + std::vector<std::string>::iterator it; + int first = 1; + cmOStringStream str; + for ( it = this->GetLinkDirectories().begin(); + it != this->GetLinkDirectories().end(); + ++ it ) + { + if ( !first ) + { + str << ";"; + } + str << it->c_str(); + first = 0; + } + output = str.str(); + this->SetProperty(prop, output.c_str()); + } + bool chain = false; const char *retVal = this->Properties.GetPropertyValue(prop, scope, chain); |