Verified Commit 749ce48e authored by Dennis Klein's avatar Dennis Klein

cmInstallTargetGenerator: Escape generated OLD_RPATH argument

On some platforms, e.g. most ELF-based ones, RPATHs may contain keywords
that match CMake's variable syntax. To prevent them from being falsely
substituted when running the cmake_install.cmake script CMake syntax
needs to be escaped.
parent 9e84c7c5
......@@ -750,13 +750,14 @@ void cmInstallTargetGenerator::AddChrpathPatchRule(
return;
}
// Escape any CMake syntax in the install RPATH.
// Escape any CMake syntax in the RPATHs.
std::string escapedOldRpath = cmOutputConverter::EscapeForCMake(oldRpath);
std::string escapedNewRpath = cmOutputConverter::EscapeForCMake(newRpath);
// Write a rule to run chrpath to set the install-tree RPATH
os << indent << "file(RPATH_CHANGE\n"
<< indent << " FILE \"" << toDestDirPath << "\"\n"
<< indent << " OLD_RPATH \"" << oldRpath << "\"\n";
<< indent << " OLD_RPATH " << escapedOldRpath << "\n";
// CMP0095: ``RPATH`` entries are properly escaped in the intermediary
// CMake install script.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment