[Cmake-commits] CMake branch, next, updated. v2.8.7-3060-g7f1b86d

Stephen Kelly steveire at gmail.com
Mon Mar 5 16:49:36 EST 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  7f1b86d666b0d18dae8ea3196e821e57bffdaef7 (commit)
       via  635bf50c27aef184bfa1698953dd44361e1fb2f9 (commit)
      from  027084f60efced153ac088acf69ab0e1ff68aba5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7f1b86d666b0d18dae8ea3196e821e57bffdaef7
commit 7f1b86d666b0d18dae8ea3196e821e57bffdaef7
Merge: 027084f 635bf50
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Mar 5 16:49:21 2012 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Mar 5 16:49:21 2012 -0500

    Merge topic 'skip-install-rpath' into next
    
    635bf50 Add an option to skip RPATH during installation.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=635bf50c27aef184bfa1698953dd44361e1fb2f9
commit 635bf50c27aef184bfa1698953dd44361e1fb2f9
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Mon Feb 20 00:34:11 2012 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Mon Mar 5 22:24:57 2012 +0100

    Add an option to skip RPATH during installation.

diff --git a/Modules/CMakeGenericSystem.cmake b/Modules/CMakeGenericSystem.cmake
index 6cd8fe6..ee8040e 100644
--- a/Modules/CMakeGenericSystem.cmake
+++ b/Modules/CMakeGenericSystem.cmake
@@ -39,6 +39,8 @@ SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
 
 SET (CMAKE_SKIP_RPATH "NO" CACHE BOOL
      "If set, runtime paths are not added when using shared libraries.")
+SET (CMAKE_SKIP_INSTALL_RPATH "NO" CACHE BOOL
+     "If set, runtime paths are not added when installing shared libraries, but are added when building.")
 
 SET(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make.  This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.") 
 
@@ -168,5 +170,6 @@ ENDIF(CMAKE_HOST_UNIX)
 
 MARK_AS_ADVANCED(
   CMAKE_SKIP_RPATH
+  CMAKE_SKIP_INSTALL_RPATH
   CMAKE_VERBOSE_MAKEFILE
 )
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index edf6c35..c57b85d 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -1760,6 +1760,7 @@ void cmComputeLinkInformation::GetRPath(std::vector<std::string>& runtimeDirs,
      !linking_for_install);
   bool use_link_rpath =
     outputRuntime && linking_for_install &&
+    !this->Makefile->IsOn("CMAKE_SKIP_INSTALL_RPATH") &&
     this->Target->GetPropertyAsBool("INSTALL_RPATH_USE_LINK_PATH");
 
   // Construct the RPATH.
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index 1cab2b5..fb15615 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -355,7 +355,9 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
      "If this is set to TRUE, then the rpath information "
      "is not added to compiled executables.  The default "
      "is to add rpath information if the platform supports it.  "
-     "This allows for easy running from the build tree.",false,
+     "This allows for easy running from the build tree.  To omit RPATH"
+     "in the install step, but not the build step, use "
+     "CMAKE_SKIP_INSTALL_RPATH instead.",false,
      "Variables that Provide Information");
   cm->DefineProperty
     ("CMAKE_SOURCE_DIR", cmProperty::VARIABLE,
@@ -1181,6 +1183,20 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
      "Variables that Control the Build");
 
   cm->DefineProperty
+    ("CMAKE_SKIP_INSTALL_RPATH", cmProperty::VARIABLE,
+     "Do not include RPATHs in the install tree.",
+     "Normally CMake uses the build tree for the RPATH when building "
+     "executables etc on systems that use RPATH. When the software "
+     "is installed the executables etc are relinked by CMake to have "
+     "the install RPATH. If this variable is set to true then the software "
+     "is always installed without RPATH, even if RPATH is enabled when "
+     "building.  This can be useful for example to allow running tests from "
+     "the build directory with RPATH enabled before the installation step.  "
+     "To omit RPATH in both the build and install steps, use "
+     "CMAKE_SKIP_RPATH instead.",false,
+     "Variables that Control the Build");
+
+  cm->DefineProperty
     ("CMAKE_EXE_LINKER_FLAGS", cmProperty::VARIABLE,
      "Linker flags used to create executables.",
      "Flags used by the linker when creating an executable.",false,
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index ae5596b..b87c086 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -3602,7 +3602,8 @@ bool cmTarget::HaveBuildTreeRPATH()
 bool cmTarget::HaveInstallTreeRPATH()
 {
   const char* install_rpath = this->GetProperty("INSTALL_RPATH");
-  return install_rpath && *install_rpath;
+  return (install_rpath && *install_rpath) &&
+          !this->Makefile->IsOn("CMAKE_SKIP_INSTALL_RPATH");
 }
 
 //----------------------------------------------------------------------------
@@ -3709,7 +3710,8 @@ std::string cmTarget::GetInstallNameDirForInstallTree(const char* config,
     {
     std::string dir;
 
-    if(!this->Makefile->IsOn("CMAKE_SKIP_RPATH"))
+    if(!this->Makefile->IsOn("CMAKE_SKIP_RPATH") &&
+       !this->Makefile->IsOn("CMAKE_SKIP_INSTALL_RPATH"))
       {
       const char* install_name_dir = this->GetProperty("INSTALL_NAME_DIR");
       if(install_name_dir && *install_name_dir)

-----------------------------------------------------------------------

Summary of changes:
 Modules/CMakeGenericSystem.cmake    |    3 +++
 Source/cmComputeLinkInformation.cxx |    1 +
 Source/cmDocumentVariables.cxx      |   18 +++++++++++++++++-
 Source/cmTarget.cxx                 |    6 ++++--
 4 files changed, 25 insertions(+), 3 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list