|
|
@@ -425,27 +425,25 @@ void cmLocalGenerator::ProcessEvaluationFiles(
|
|
|
void cmLocalGenerator::GenerateInstallRules()
|
|
|
{
|
|
|
// Compute the install prefix.
|
|
|
- const char* prefix =
|
|
|
- cmToCStr(this->Makefile->GetDefinition("CMAKE_INSTALL_PREFIX"));
|
|
|
+ cmProp installPrefix = this->Makefile->GetDefinition("CMAKE_INSTALL_PREFIX");
|
|
|
+ std::string prefix = installPrefix;
|
|
|
|
|
|
#if defined(_WIN32) && !defined(__CYGWIN__)
|
|
|
- std::string prefix_win32;
|
|
|
- if (!prefix) {
|
|
|
- if (!cmSystemTools::GetEnv("SystemDrive", prefix_win32)) {
|
|
|
- prefix_win32 = "C:";
|
|
|
+ if (!installPrefix) {
|
|
|
+ if (!cmSystemTools::GetEnv("SystemDrive", prefix)) {
|
|
|
+ prefix = "C:";
|
|
|
}
|
|
|
cmProp project_name = this->Makefile->GetDefinition("PROJECT_NAME");
|
|
|
if (cmNonempty(project_name)) {
|
|
|
- prefix_win32 += "/Program Files/";
|
|
|
- prefix_win32 += *project_name;
|
|
|
+ prefix += "/Program Files/";
|
|
|
+ prefix += *project_name;
|
|
|
} else {
|
|
|
- prefix_win32 += "/InstalledCMakeProject";
|
|
|
+ prefix += "/InstalledCMakeProject";
|
|
|
}
|
|
|
- prefix = prefix_win32.c_str();
|
|
|
}
|
|
|
#elif defined(__HAIKU__)
|
|
|
char dir[B_PATH_NAME_LENGTH];
|
|
|
- if (!prefix) {
|
|
|
+ if (!installPrefix) {
|
|
|
if (find_directory(B_SYSTEM_DIRECTORY, -1, false, dir, sizeof(dir)) ==
|
|
|
B_OK) {
|
|
|
prefix = dir;
|
|
|
@@ -454,13 +452,13 @@ void cmLocalGenerator::GenerateInstallRules()
|
|
|
}
|
|
|
}
|
|
|
#else
|
|
|
- if (!prefix) {
|
|
|
+ if (!installPrefix) {
|
|
|
prefix = "/usr/local";
|
|
|
}
|
|
|
#endif
|
|
|
if (cmProp stagingPrefix =
|
|
|
this->Makefile->GetDefinition("CMAKE_STAGING_PREFIX")) {
|
|
|
- prefix = stagingPrefix->c_str();
|
|
|
+ prefix = *stagingPrefix;
|
|
|
}
|
|
|
|
|
|
// Compute the set of configurations.
|
|
|
@@ -1869,17 +1867,17 @@ std::string cmLocalGenerator::GetLinkLibsCMP0065(
|
|
|
}
|
|
|
|
|
|
bool cmLocalGenerator::AllAppleArchSysrootsAreTheSame(
|
|
|
- const std::vector<std::string>& archs, const char* sysroot)
|
|
|
+ const std::vector<std::string>& archs, cmProp sysroot)
|
|
|
{
|
|
|
if (!sysroot) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
return std::all_of(archs.begin(), archs.end(),
|
|
|
- [this, &sysroot](std::string const& arch) -> bool {
|
|
|
+ [this, sysroot](std::string const& arch) -> bool {
|
|
|
std::string const& archSysroot =
|
|
|
this->AppleArchSysroots[arch];
|
|
|
- return cmIsOff(archSysroot) || archSysroot == sysroot;
|
|
|
+ return cmIsOff(archSysroot) || sysroot == archSysroot;
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -1912,7 +1910,7 @@ void cmLocalGenerator::AddArchitectureFlags(std::string& flags,
|
|
|
cmProp sysrootFlag = this->Makefile->GetDefinition(sysrootFlagVar);
|
|
|
if (cmNonempty(sysrootFlag)) {
|
|
|
if (!this->AppleArchSysroots.empty() &&
|
|
|
- !this->AllAppleArchSysrootsAreTheSame(archs, cmToCStr(sysroot))) {
|
|
|
+ !this->AllAppleArchSysrootsAreTheSame(archs, sysroot)) {
|
|
|
for (std::string const& arch : archs) {
|
|
|
std::string const& archSysroot = this->AppleArchSysroots[arch];
|
|
|
if (cmIsOff(archSysroot)) {
|