BUG: Do not collapse the INSTALL_NAME_DIR setting because users may intend to have .. in the path. This makes the makefile generator consistent with the already working Xcode implementation of this feature. Also added a test for @executable_path/.. style settings for this property.

This commit is contained in:
Brad King 2006-10-11 12:41:20 -04:00
parent c0326d0d54
commit b20fd1af11
3 changed files with 7 additions and 20 deletions

View File

@ -548,19 +548,9 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
std::string install_name_dir;
if(this->Target->GetType() == cmTarget::SHARED_LIBRARY)
{
// Select whether to generate an install_name directory for the
// install tree or the build tree.
// Get the install_name directory for the build tree.
const char* config = this->LocalGenerator->ConfigurationName.c_str();
if(this->Target->GetPropertyAsBool("BUILD_WITH_INSTALL_RPATH"))
{
install_name_dir =
this->Target->GetInstallNameDirForInstallTree(config);
}
else
{
install_name_dir =
this->Target->GetInstallNameDirForBuildTree(config);
}
install_name_dir = this->Target->GetInstallNameDirForBuildTree(config);
// Set the rule variable replacement value.
if(install_name_dir.empty())
@ -572,13 +562,8 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
// Convert to a path for the native build tool.
install_name_dir =
this->LocalGenerator->Convert(install_name_dir.c_str(),
cmLocalGenerator::FULL,
cmLocalGenerator::NONE,
cmLocalGenerator::SHELL, false);
// The Convert method seems to strip trailing slashes, which should
// probably be fixed. Since the only platform supporting install_name
// right now uses forward slashes just add one.
install_name_dir += "/";
vars.TargetInstallNameDir = install_name_dir.c_str();
}
}

View File

@ -205,7 +205,8 @@ ELSE(STAGE2)
${CMAKE_CURRENT_SOURCE_DIR}/PreInstall.cmake)
SET_TARGET_PROPERTIES(SimpleInstall PROPERTIES POST_INSTALL_SCRIPT
${CMAKE_CURRENT_SOURCE_DIR}/PostInstall.cmake)
SET_TARGET_PROPERTIES(test4 PROPERTIES VERSION 1.2 SOVERSION 3)
SET_TARGET_PROPERTIES(test4 PROPERTIES VERSION 1.2 SOVERSION 3
INSTALL_NAME_DIR @executable_path/../lib)
ENDIF(STAGE2)
IF(CMAKE_CONFIGURATION_TYPES)

View File

@ -205,7 +205,8 @@ ELSE(STAGE2)
${CMAKE_CURRENT_SOURCE_DIR}/PreInstall.cmake)
SET_TARGET_PROPERTIES(SimpleInstall PROPERTIES POST_INSTALL_SCRIPT
${CMAKE_CURRENT_SOURCE_DIR}/PostInstall.cmake)
SET_TARGET_PROPERTIES(test4 PROPERTIES VERSION 1.2 SOVERSION 3)
SET_TARGET_PROPERTIES(test4 PROPERTIES VERSION 1.2 SOVERSION 3
INSTALL_NAME_DIR @executable_path/../lib)
ENDIF(STAGE2)
IF(CMAKE_CONFIGURATION_TYPES)