Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:redwil:misc:rpm
kicad
0001-Use-library-target-install-for-python-modu...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Use-library-target-install-for-python-module-to-fix-.patch of Package kicad
From 6baf90fcbce310036feb88ab021c740c5c079c96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de> Date: Sat, 11 Dec 2021 21:56:31 +0100 Subject: [PATCH] Use library target install for python module to fix RUNPATH When the native python module is copied into the install tree, no special handling for libraries/modules is triggered. This omits the RUNPATH adjustments normally done by CMake during installation of binaries, which is problematic for a number of reasons: - library lookup can fail when dependencies require non-default RUNPATHs - reproducible builds can fail when the buildroot contains semi-random path components Install the library target a second time, which is explicitly allowed by CMake. As RENAME is not supported for `install(TARGETS)`, adjust the name manually. --- pcbnew/CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt index 0ae24f0bd5..85b3cd471e 100644 --- a/pcbnew/CMakeLists.txt +++ b/pcbnew/CMakeLists.txt @@ -817,7 +817,13 @@ elseif( APPLE ) add_dependencies( ScriptingModulesPcbnewSoCopy ScriptingPythonDirectoryCreation ) set( PYMOD_EXT "so" ) else() # only linux remains among supported platforms - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/_pcbnew.kiface DESTINATION ${PYTHON_DEST} COMPONENT binary RENAME "_pcbnew.so" ) + install( TARGETS pcbnew_kiface DESTINATION ${PYTHON_DEST} COMPONENT binary ) + cmake_policy(SET CMP0087 NEW) + install( CODE + "file( RENAME + \$ENV{DESTDIR}${PYTHON_DEST}/\$<TARGET_FILE_NAME:pcbnew_kiface> + \$ENV{DESTDIR}${PYTHON_DEST}/_pcbnew.so + )" ) set( PYMOD_EXT "so" ) endif() -- 2.34.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor