Переглянути джерело

Return std::string from cmGeneratorTarget::ImportedGetLocation

Sebastian Holtermann 7 роки тому
батько
коміт
86b332c25d

+ 2 - 4
Source/cmGeneratorTarget.cxx

@@ -3358,14 +3358,12 @@ std::string cmGeneratorTarget::GetFullNameInternal(
   return prefix + base + suffix;
 }
 
-const char* cmGeneratorTarget::ImportedGetLocation(
+std::string cmGeneratorTarget::ImportedGetLocation(
   const std::string& config) const
 {
-  static std::string location;
   assert(this->IsImported());
-  location = this->Target->ImportedGetFullPath(
+  return this->Target->ImportedGetFullPath(
     config, cmStateEnums::RuntimeBinaryArtifact);
-  return location.c_str();
 }
 
 std::string cmGeneratorTarget::GetFullNameImported(

+ 1 - 1
Source/cmGeneratorTarget.h

@@ -658,7 +658,7 @@ public:
       no soname at all.  */
   bool IsImportedSharedLibWithoutSOName(const std::string& config) const;
 
-  const char* ImportedGetLocation(const std::string& config) const;
+  std::string ImportedGetLocation(const std::string& config) const;
 
   /** Get the target major and minor version numbers interpreted from
       the VERSION property.  Version 0 is returned if the property is

+ 3 - 8
Source/cmQtAutoGenInitializer.cxx

@@ -37,11 +37,6 @@
 #include <utility>
 #include <vector>
 
-inline static const char* SafeString(const char* value)
-{
-  return (value != nullptr) ? value : "";
-}
-
 static std::size_t GetParallelCPUCount()
 {
   static std::size_t count = 0;
@@ -1268,7 +1263,7 @@ bool cmQtAutoGenInitializer::GetMocExecutable()
       cmLocalGenerator* localGen = this->Target->GetLocalGenerator();
       cmGeneratorTarget* tgt = localGen->FindGeneratorTargetToUse(targetName);
       if (tgt != nullptr) {
-        this->Moc.Executable = SafeString(tgt->ImportedGetLocation(""));
+        this->Moc.Executable = tgt->ImportedGetLocation("");
       } else {
         err = "Could not find target " + targetName;
       }
@@ -1329,7 +1324,7 @@ bool cmQtAutoGenInitializer::GetUicExecutable()
       cmLocalGenerator* localGen = this->Target->GetLocalGenerator();
       cmGeneratorTarget* tgt = localGen->FindGeneratorTargetToUse(targetName);
       if (tgt != nullptr) {
-        this->Uic.Executable = SafeString(tgt->ImportedGetLocation(""));
+        this->Uic.Executable = tgt->ImportedGetLocation("");
       } else {
         if (this->QtVersionMajor == "5") {
           // Project does not use Qt5Widgets, but has AUTOUIC ON anyway
@@ -1394,7 +1389,7 @@ bool cmQtAutoGenInitializer::GetRccExecutable()
       cmLocalGenerator* localGen = this->Target->GetLocalGenerator();
       cmGeneratorTarget* tgt = localGen->FindGeneratorTargetToUse(targetName);
       if (tgt != nullptr) {
-        this->Rcc.Executable = SafeString(tgt->ImportedGetLocation(""));
+        this->Rcc.Executable = tgt->ImportedGetLocation("");
       } else {
         err = "Could not find target " + targetName;
       }