Просмотр исходного кода

changes to better handle old values or hand set values

Ken Martin 24 лет назад
Родитель
Сommit
e0fa3f281c
1 измененных файлов с 21 добавлено и 1 удалено
  1. 21 1
      Source/cmBuildNameCommand.cxx

+ 21 - 1
Source/cmBuildNameCommand.cxx

@@ -52,9 +52,29 @@ bool cmBuildNameCommand::InitialPass(std::vector<std::string>& args)
     = cmCacheManager::GetInstance()->GetCacheValue("BUILDNAME");
   if(cacheValue)
     {
-    m_Makefile->AddDefinition("BUILDNAME", cacheValue);
+    // do we need to correct the value? 
+    cmRegularExpression reg("[()/]");
+    if (reg.find(cacheValue))
+      {
+      std::string cv = cacheValue;
+      cmSystemTools::ReplaceString(cv,"/", "_");
+      cmSystemTools::ReplaceString(cv,"(", "_");
+      cmSystemTools::ReplaceString(cv,")", "_");
+      cmCacheManager::GetInstance()->
+        AddCacheEntry("BUILDNAME",
+                      cv.c_str(),
+                      "Name of build.",
+                      cmCacheManager::STRING);
+      m_Makefile->AddDefinition("BUILDNAME", cv.c_str());
+      }
+    else
+      {
+      m_Makefile->AddDefinition("BUILDNAME", cacheValue);
+      }
     return true;
     }
+
+  
   std::string buildname = "WinNT";
   if(m_Makefile->GetDefinition("UNIX"))
     {