summaryrefslogtreecommitdiff
path: root/Source/cmBuildNameCommand.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmBuildNameCommand.cxx')
-rw-r--r--Source/cmBuildNameCommand.cxx18
1 files changed, 16 insertions, 2 deletions
diff --git a/Source/cmBuildNameCommand.cxx b/Source/cmBuildNameCommand.cxx
index 654ede059b..83cabc29b0 100644
--- a/Source/cmBuildNameCommand.cxx
+++ b/Source/cmBuildNameCommand.cxx
@@ -59,10 +59,24 @@ bool cmBuildNameCommand::Invoke(std::vector<std::string>& args)
if(m_Makefile->GetDefinition("UNIX"))
{
buildname = "";
- cmSystemTools::RunCommand("uname",
+ cmSystemTools::RunCommand("uname -a",
buildname);
+ if(buildname.length())
+ {
+ std::string RegExp = "([^ ]*) [^ ]* ([^ ]*) ";
+ cmRegularExpression reg( RegExp.c_str() );
+ if(reg.find(buildname.c_str()))
+ {
+ buildname = reg.match(1) + "-" + reg.match(2);
+ }
+ }
+
}
-
+
+ std::string compiler = "-${CXX}";
+ m_Makefile->ExpandVariablesInString ( compiler );
+ buildname += compiler;
+
cmCacheManager::GetInstance()->
AddCacheEntry("BUILDNAME",
buildname.c_str(),