summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2006-10-11 16:41:20 (GMT)
committerBrad King <brad.king@kitware.com>2006-10-11 16:41:20 (GMT)
commitb20fd1af117df4defd8ecd6f34dfb65d6c9c7ad6 (patch)
tree797c9b88cf0a76f024036334a95a174ad76a5140
parentc0326d0d543615b5f3e0c10d382e0275a18d5b47 (diff)
downloadCMake-b20fd1af117df4defd8ecd6f34dfb65d6c9c7ad6.zip
CMake-b20fd1af117df4defd8ecd6f34dfb65d6c9c7ad6.tar.gz
CMake-b20fd1af117df4defd8ecd6f34dfb65d6c9c7ad6.tar.bz2
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.
-rw-r--r--Source/cmMakefileLibraryTargetGenerator.cxx21
-rw-r--r--Tests/SimpleInstall/CMakeLists.txt3
-rw-r--r--Tests/SimpleInstallS2/CMakeLists.txt3
3 files changed, 7 insertions, 20 deletions
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx
index 006caa7..fa65215 100644
--- a/Source/cmMakefileLibraryTargetGenerator.cxx
+++ b/Source/cmMakefileLibraryTargetGenerator.cxx
@@ -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();
}
}
diff --git a/Tests/SimpleInstall/CMakeLists.txt b/Tests/SimpleInstall/CMakeLists.txt
index 564b4fa..3d8cdb8 100644
--- a/Tests/SimpleInstall/CMakeLists.txt
+++ b/Tests/SimpleInstall/CMakeLists.txt
@@ -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)
diff --git a/Tests/SimpleInstallS2/CMakeLists.txt b/Tests/SimpleInstallS2/CMakeLists.txt
index 564b4fa..3d8cdb8 100644
--- a/Tests/SimpleInstallS2/CMakeLists.txt
+++ b/Tests/SimpleInstallS2/CMakeLists.txt
@@ -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)