]> granicus.if.org Git - libevent/commitdiff
Do not install RPATH for install tree by default
authorAzat Khuzhin <azat@libevent.org>
Thu, 10 Mar 2022 20:11:14 +0000 (23:11 +0300)
committerAzat Khuzhin <azat@libevent.org>
Thu, 10 Mar 2022 20:54:58 +0000 (23:54 +0300)
In ce8be2385b5fee16859a630fca0c98ad290c8e21 ("cmake: set rpath for
libraries on linux") RPATH was first instroduced.

Later in 6d09efe8686de824adf3d8810bbe0d5c386643e4 ("Set RPATH only if
installation is done into non system directory") it was set only if it
was installed to non system directory.

But absolute RPATH not a good default, let's change this.

Fixes: #920
CMakeLists.txt
PreLoad.cmake [new file with mode: 0644]
test-export/test-export.py

index ffe7aa582897fd39f689ed153f51653a0ba35bfb..aeb8ce7c1071cca6919d0879e9713fb91a01fd9a 100644 (file)
@@ -1670,6 +1670,7 @@ message(STATUS "CMAKE_SYSTEM_NAME:        ${CMAKE_SYSTEM_NAME}")
 message(STATUS "CMAKE_SYSTEM_VERSION:     ${CMAKE_SYSTEM_VERSION}")
 message(STATUS "CMAKE_SYSTEM_PROCESSOR:   ${CMAKE_SYSTEM_PROCESSOR}")
 message(STATUS "CMAKE_SKIP_RPATH:         ${CMAKE_SKIP_RPATH}")
+message(STATUS "CMAKE_SKIP_INSTALL_RPATH: ${CMAKE_SKIP_INSTALL_RPATH}")
 message(STATUS "CMAKE_INSTALL_RPATH:      ${CMAKE_INSTALL_RPATH}")
 message(STATUS "CMAKE_VERBOSE_MAKEFILE:   ${CMAKE_VERBOSE_MAKEFILE}")
 message(STATUS "CMAKE_C_FLAGS:            ${CMAKE_C_FLAGS}")
diff --git a/PreLoad.cmake b/PreLoad.cmake
new file mode 100644 (file)
index 0000000..d1b739c
--- /dev/null
@@ -0,0 +1,7 @@
+# Disable RPATH for install tree by default.
+#
+# PreLoad is used to change the default, since CMakeLists.txt will already have
+# the default, and it will NO.
+if (NOT DEFINED CMAKE_SKIP_INSTALL_RPATH)
+    set(CMAKE_SKIP_INSTALL_RPATH ON CACHE STRING "" FORCE)
+endif()
index a6def1ca9249d001f5ae1b8876d7d474b0e31601..3320e3b281ebd5e5b4f0ad80223ec3e19f92e5cd 100644 (file)
@@ -176,7 +176,7 @@ if platform.system() == "Windows":
     dllpath = os.path.join(prefix, "lib")
 else:
     prefix = "/usr/local"
-exec_cmd('cmake -DCMAKE_INSTALL_PREFIX="%s" ..' % prefix, True)
+exec_cmd('cmake -DCMAKE_SKIP_INSTALL_RPATH=OFF -DCMAKE_INSTALL_PREFIX="%s" ..' % prefix, True)
 exec_cmd('cmake --build . --target install', True)
 config_backup()
 os.environ["CMAKE_PREFIX_PATH"] = os.path.join(prefix, "lib/cmake/libevent")
@@ -191,7 +191,7 @@ del os.environ["CMAKE_PREFIX_PATH"]
 print("[test-export] test for install tree(in non-system-wide path)")
 exec_cmd("cmake --build . --target uninstall", True)
 tempdir = tempfile.TemporaryDirectory()
-cmd = 'cmake -DCMAKE_INSTALL_PREFIX="%s" ..' % tempdir.name
+cmd = 'cmake -DCMAKE_SKIP_INSTALL_RPATH=OFF -DCMAKE_INSTALL_PREFIX="%s" ..' % tempdir.name
 exec_cmd(cmd, True)
 exec_cmd("cmake --build . --target install", True)
 config_backup()