Compare commits

...

1 Commits

Author SHA1 Message Date
Renato Araujo Oliveira Filho
cd01e9cdde Install library so into python module dir
We do the same a PySide and install the target library into the python
module this. This way the bindings can work without need to export
system paths.
2021-09-24 12:34:41 -03:00
3 changed files with 17 additions and 2 deletions

View File

@@ -129,6 +129,7 @@ macro(CREATE_PYTHON_BINDINGS
PREFIX ""
OUTPUT_NAME ${MODULE_NAME}
LIBRARY_OUTPUT_DIRECTORY ${MODULE_OUTPUT_DIR}
INSTALL_RPATH "$ORIGIN"
)
if(WIN32)

View File

@@ -81,5 +81,11 @@ create_python_bindings(
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.cmake ${CMAKE_CURRENT_BINARY_DIR}/__init__.py @ONLY)
# install
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/__init__.py
DESTINATION ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX})
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/__init__.py
$<TARGET_LINKER_FILE:KDAB::kddockwidgets>
$<TARGET_SONAME_FILE:KDAB::kddockwidgets>
$<TARGET_FILE:KDAB::kddockwidgets>
DESTINATION
${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX})

View File

@@ -10,9 +10,15 @@
#
import sys
import os
__all__ = ['KDDockWidgets']
def setupLibraryPath():
package_dir = os.path.abspath(os.path.dirname(__file__))
if sys.platform == 'win32':
os.add_dll_directory(package_dir)
# Preload PySide libraries to avoid missing libraries while loading KDDockWidgets
try:
from PySide@PYSIDE_MAJOR_VERSION@ import QtCore
@@ -22,3 +28,5 @@ try:
except Exception:
print("Failed to load PySide")
raise
setupLibraryPath()