CMAKE_STAGING_PREFIX overrides CMAKE_INSTALL_PREFIX
When cross-compiling for Android I have a prefix that contains both my libraries and Qt side by side, both of which I have in the same prefix. I don't see why CMAKE_STAGING_PREFIX
must modify my CMAKE_INSTALL_PREFIX
setting.
Am I missing something?
This fixes my issue:
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 7077bbbc9..47cb877a5 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -315,6 +315,10 @@ void cmLocalGenerator::GenerateInstallRules()
{
// Compute the install prefix.
const char* prefix = this->Makefile->GetDefinition("CMAKE_INSTALL_PREFIX");
+ if (!prefix) {
+ prefix = this->Makefile->GetDefinition("CMAKE_STAGING_PREFIX");
+ }
+
#if defined(_WIN32) && !defined(__CYGWIN__)
std::string prefix_win32;
if (!prefix) {
@@ -345,10 +349,6 @@ void cmLocalGenerator::GenerateInstallRules()
prefix = "/usr/local";
}
#endif
- if (const char* stagingPrefix =
- this->Makefile->GetDefinition("CMAKE_STAGING_PREFIX")) {
- prefix = stagingPrefix;
- }
// Compute the set of configurations.
std::vector<std::string> configurationTypes;