mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00
cmSystemTools: Add SetRPath() method
This commit is contained in:
@@ -2744,6 +2744,24 @@ bool cmSystemTools::ChangeRPath(std::string const& file,
|
||||
return AdjustRPath(file, MakeEmptyCallback(newRPath), adjustCallback, emsg,
|
||||
changed);
|
||||
}
|
||||
|
||||
bool cmSystemTools::SetRPath(std::string const& file,
|
||||
std::string const& newRPath, std::string* emsg,
|
||||
bool* changed)
|
||||
{
|
||||
auto adjustCallback = [newRPath](cm::optional<std::string>& outRPath,
|
||||
const std::string& inRPath,
|
||||
const char* /*se_name*/, std::string *
|
||||
/*emsg*/) -> bool {
|
||||
if (inRPath != newRPath) {
|
||||
outRPath = newRPath;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
return AdjustRPath(file, MakeEmptyCallback(newRPath), adjustCallback, emsg,
|
||||
changed);
|
||||
}
|
||||
#elif defined(CMake_USE_XCOFF_PARSER)
|
||||
bool cmSystemTools::ChangeRPath(std::string const& file,
|
||||
std::string const& oldRPath,
|
||||
@@ -2813,6 +2831,13 @@ bool cmSystemTools::ChangeRPath(std::string const& file,
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cmSystemTools::SetRPath(std::string const& /*file*/,
|
||||
std::string const& /*newRPath*/,
|
||||
std::string* /*emsg*/, bool* /*changed*/)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
bool cmSystemTools::ChangeRPath(std::string const& /*file*/,
|
||||
std::string const& /*oldRPath*/,
|
||||
@@ -2822,6 +2847,13 @@ bool cmSystemTools::ChangeRPath(std::string const& /*file*/,
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cmSystemTools::SetRPath(std::string const& /*file*/,
|
||||
std::string const& /*newRPath*/,
|
||||
std::string* /*emsg*/, bool* /*changed*/)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool cmSystemTools::VersionCompare(cmSystemTools::CompareOp op,
|
||||
|
@@ -456,13 +456,17 @@ public:
|
||||
static bool GuessLibraryInstallName(std::string const& fullPath,
|
||||
std::string& soname);
|
||||
|
||||
/** Try to set the RPATH in an ELF binary. */
|
||||
/** Try to change the RPATH in an ELF binary. */
|
||||
static bool ChangeRPath(std::string const& file, std::string const& oldRPath,
|
||||
std::string const& newRPath,
|
||||
bool removeEnvironmentRPath,
|
||||
std::string* emsg = nullptr,
|
||||
bool* changed = nullptr);
|
||||
|
||||
/** Try to set the RPATH in an ELF binary. */
|
||||
static bool SetRPath(std::string const& file, std::string const& newRPath,
|
||||
std::string* emsg = nullptr, bool* changed = nullptr);
|
||||
|
||||
/** Try to remove the RPATH from an ELF binary. */
|
||||
static bool RemoveRPath(std::string const& file, std::string* emsg = nullptr,
|
||||
bool* removed = nullptr);
|
||||
|
Reference in New Issue
Block a user