diff options
author | Pavel Solodovnikov <hellyeahdominate@gmail.com> | 2018-01-31 15:20:02 (GMT) |
---|---|---|
committer | Pavel Solodovnikov <hellyeahdominate@gmail.com> | 2018-01-31 15:23:03 (GMT) |
commit | 653b894683abe63233cb8679b34ea39d9017e317 (patch) | |
tree | 200e5066b754d8ddfdc7beb86c4db179aa2e69d0 /Source/cmake.cxx | |
parent | 4499cc8bb65e217e1cb2959452ed391af82e757b (diff) | |
download | CMake-653b894683abe63233cb8679b34ea39d9017e317.zip CMake-653b894683abe63233cb8679b34ea39d9017e317.tar.gz CMake-653b894683abe63233cb8679b34ea39d9017e317.tar.bz2 |
Reduce raw string pointers usage.
* Change some functions to take `std::string` instead of
`const char*` in the following classes: `cmMakeFile`, `cmake`,
`cmCoreTryCompile`, `cmSystemTools`, `cmState`, `cmLocalGenerator`
and a few others.
* Greatly reduce using of `const char*` overloads for
`cmSystemTools::MakeDirectory` and `cmSystemTools::RelativePath`.
* Remove many redundant `c_str()` conversions throughout the code.
Diffstat (limited to 'Source/cmake.cxx')
-rw-r--r-- | Source/cmake.cxx | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 39beb9f..5620723 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -487,7 +487,7 @@ void cmake::ReadListFile(const std::vector<std::string>& args, if (this->GetWorkingMode() != NORMAL_MODE) { std::string file(cmSystemTools::CollapseFullPath(path)); cmSystemTools::ConvertToUnixSlashes(file); - mf.SetScriptModeFile(file.c_str()); + mf.SetScriptModeFile(file); mf.SetArgcArgv(args); } @@ -783,10 +783,10 @@ void cmake::SetDirectoriesFromFile(const char* arg) cacheFile += "/CMakeCache.txt"; std::string listFile = path; listFile += "/CMakeLists.txt"; - if (cmSystemTools::FileExists(cacheFile.c_str())) { + if (cmSystemTools::FileExists(cacheFile)) { cachePath = path; } - if (cmSystemTools::FileExists(listFile.c_str())) { + if (cmSystemTools::FileExists(listFile)) { listPath = path; } } else if (cmSystemTools::FileExists(arg)) { @@ -869,7 +869,7 @@ int cmake::AddCMakePaths() "Path to cpack program executable.", cmStateEnums::INTERNAL); #endif if (!cmSystemTools::FileExists( - (cmSystemTools::GetCMakeRoot() + "/Modules/CMake.cmake").c_str())) { + (cmSystemTools::GetCMakeRoot() + "/Modules/CMake.cmake"))) { // couldn't find modules cmSystemTools::Error( "Could not find CMAKE_ROOT !!!\n" @@ -1003,7 +1003,7 @@ void cmake::SetHomeDirectory(const std::string& dir) } } -const char* cmake::GetHomeDirectory() const +std::string const& cmake::GetHomeDirectory() const { return this->State->GetSourceDirectory(); } @@ -1016,7 +1016,7 @@ void cmake::SetHomeOutputDirectory(const std::string& dir) } } -const char* cmake::GetHomeOutputDirectory() const +std::string const& cmake::GetHomeOutputDirectory() const { return this->State->GetBinaryDirectory(); } @@ -1027,11 +1027,11 @@ std::string cmake::FindCacheFile(const std::string& binaryDir) cmSystemTools::ConvertToUnixSlashes(cachePath); std::string cacheFile = cachePath; cacheFile += "/CMakeCache.txt"; - if (!cmSystemTools::FileExists(cacheFile.c_str())) { + if (!cmSystemTools::FileExists(cacheFile)) { // search in parent directories for cache std::string cmakeFiles = cachePath; cmakeFiles += "/CMakeFiles"; - if (cmSystemTools::FileExists(cmakeFiles.c_str())) { + if (cmSystemTools::FileExists(cmakeFiles)) { std::string cachePathFound = cmSystemTools::FileExistsInParentDirectories("CMakeCache.txt", cachePath.c_str(), "/"); @@ -1087,7 +1087,7 @@ int cmake::DoPreConfigureChecks() // Make sure the Source directory contains a CMakeLists.txt file. std::string srcList = this->GetHomeDirectory(); srcList += "/CMakeLists.txt"; - if (!cmSystemTools::FileExists(srcList.c_str())) { + if (!cmSystemTools::FileExists(srcList)) { std::ostringstream err; if (cmSystemTools::FileIsDirectory(this->GetHomeDirectory())) { err << "The source directory \"" << this->GetHomeDirectory() @@ -1272,7 +1272,7 @@ int cmake::ActualConfigure() } if (!res) { this->AddCacheEntry( - "CMAKE_HOME_DIRECTORY", this->GetHomeDirectory(), + "CMAKE_HOME_DIRECTORY", this->GetHomeDirectory().c_str(), "Source directory with the top level CMakeLists.txt file for this " "project", cmStateEnums::INTERNAL); @@ -1509,14 +1509,14 @@ void cmake::PreLoadCMakeFiles() std::string pre_load = this->GetHomeDirectory(); if (!pre_load.empty()) { pre_load += "/PreLoad.cmake"; - if (cmSystemTools::FileExists(pre_load.c_str())) { + if (cmSystemTools::FileExists(pre_load)) { this->ReadListFile(args, pre_load.c_str()); } } pre_load = this->GetHomeOutputDirectory(); if (!pre_load.empty()) { pre_load += "/PreLoad.cmake"; - if (cmSystemTools::FileExists(pre_load.c_str())) { + if (cmSystemTools::FileExists(pre_load)) { this->ReadListFile(args, pre_load.c_str()); } } @@ -1724,7 +1724,7 @@ int cmake::LoadCache() // if it does exist, but isn't readable then warn the user std::string cacheFile = this->GetHomeOutputDirectory(); cacheFile += "/CMakeCache.txt"; - if (cmSystemTools::FileExists(cacheFile.c_str())) { + if (cmSystemTools::FileExists(cacheFile)) { cmSystemTools::Error( "There is a CMakeCache.txt file for the current binary tree but " "cmake does not have permission to read it. Please check the " @@ -1891,7 +1891,7 @@ int cmake::CheckBuildSystem() } // If the file provided does not exist, we have to rerun. - if (!cmSystemTools::FileExists(this->CheckBuildSystemArgument.c_str())) { + if (!cmSystemTools::FileExists(this->CheckBuildSystemArgument)) { if (verbose) { std::ostringstream msg; msg << "Re-run cmake missing file: " << this->CheckBuildSystemArgument @@ -1945,8 +1945,7 @@ int cmake::CheckBuildSystem() cmSystemTools::ExpandListArgument(productStr, products); } for (std::string const& p : products) { - if (!(cmSystemTools::FileExists(p.c_str()) || - cmSystemTools::FileIsSymlink(p))) { + if (!(cmSystemTools::FileExists(p) || cmSystemTools::FileIsSymlink(p))) { if (verbose) { std::ostringstream msg; msg << "Re-run cmake, missing byproduct: " << p << "\n"; @@ -2144,7 +2143,7 @@ int cmake::GetSystemInformation(std::vector<std::string>& args) std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); std::string destPath = cwd + "/__cmake_systeminformation"; cmSystemTools::RemoveADirectory(destPath); - if (!cmSystemTools::MakeDirectory(destPath.c_str())) { + if (!cmSystemTools::MakeDirectory(destPath)) { std::cerr << "Error: --system-information must be run from a " "writable directory!\n"; return 1; @@ -2176,7 +2175,7 @@ int cmake::GetSystemInformation(std::vector<std::string>& args) } // no option assume it is the output file else { - if (!cmSystemTools::FileIsFullPath(arg.c_str())) { + if (!cmSystemTools::FileIsFullPath(arg)) { resultFile = cwd; resultFile += "/"; } @@ -2429,7 +2428,7 @@ int cmake::Build(const std::string& dir, const std::string& target, cmGlobalVisualStudio8Generator::GetGenerateStampList(); // Note that the stampList file only exists for VS generators. - if (cmSystemTools::FileExists(stampList.c_str()) && + if (cmSystemTools::FileExists(stampList) && !cmakeCheckStampList(stampList.c_str(), false)) { // Correctly initialize the home (=source) and home output (=binary) |