Pārlūkot izejas kodu

cmMakefile: Use std::string in ProjectName API.

Stephen Kelly 10 gadi atpakaļ
vecāks
revīzija
6ce940ac97

+ 3 - 1
Source/cmCPluginAPI.cxx

@@ -115,7 +115,9 @@ void CCONV cmAddCacheDefinition(void *arg, const char* name,
 const char* CCONV cmGetProjectName(void *arg)
 {
   cmMakefile *mf = static_cast<cmMakefile *>(arg);
-  return mf->GetProjectName();
+  static std::string name;
+  name = mf->GetProjectName();
+  return name.c_str();
 }
 
 const char* CCONV cmGetHomeDirectory(void *arg)

+ 2 - 2
Source/cmMakefile.cxx

@@ -2044,12 +2044,12 @@ void cmMakefile::RemoveCacheDefinition(const std::string& name)
   this->GetState()->RemoveCacheEntry(name);
 }
 
-void cmMakefile::SetProjectName(const char* p)
+void cmMakefile::SetProjectName(std::string const& p)
 {
   this->ProjectName = p;
 }
 
-const char* cmMakefile::GetProjectName() const
+std::string cmMakefile::GetProjectName() const
 {
   return this->ProjectName.c_str();
 }

+ 2 - 2
Source/cmMakefile.h

@@ -274,12 +274,12 @@ public:
   /**
    * Specify the name of the project for this build.
    */
-  void SetProjectName(const char*);
+  void SetProjectName(std::string const& name);
 
   /**
    * Get the name of the project for this build.
    */
-  const char* GetProjectName() const;
+  std::string GetProjectName() const;
 
   /** Get the configurations to be generated.  */
   std::string GetConfigurations(std::vector<std::string>& configs,

+ 1 - 1
Source/cmProjectCommand.cxx

@@ -20,7 +20,7 @@ bool cmProjectCommand
     this->SetError("PROJECT called with incorrect number of arguments");
     return false;
     }
-  this->Makefile->SetProjectName(args[0].c_str());
+  this->Makefile->SetProjectName(args[0]);
 
   std::string bindir = args[0];
   bindir += "_BINARY_DIR";