Even more plug-in workarounds

This commit is contained in:
Thomas Krijnen
2026-07-31 07:47:34 +02:00
parent 3d1e157ff1
commit d3ca116534
3 changed files with 12 additions and 5 deletions
+2
View File
@@ -1,5 +1,7 @@
@PACKAGE_INIT@
set_and_check(IFCOPENSHELL_LIBRARY_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@")
# Variable to inspect installed schema versions.
set(IFCOPENSHELL_SCHEMA_VERSIONS @SCHEMA_VERSIONS@)
+1
View File
@@ -17,6 +17,7 @@ configure_package_config_file(
${CONFIG_PACKAGE_INPUT}
${CONFIG_PACKAGE_OUTPUT}
INSTALL_DESTINATION ${CONFIG_PACKAGE_LOCATION}
PATH_VARS CMAKE_INSTALL_LIBDIR
)
install(FILES "${CONFIG_PACKAGE_OUTPUT}" "${CONFIG_VERSION_OUTPUT}" DESTINATION ${CONFIG_PACKAGE_LOCATION})
+9 -5
View File
@@ -225,11 +225,15 @@ if(schema_libraries OR kernel_libraries OR tree_libraries OR mapping_libraries O
add_dependencies(ifcopenshell_wrapper ${schema_libraries} ${kernel_libraries} ${tree_libraries} ${mapping_libraries} ${geometry_serializer_libraries} ${document_serializer_libraries} ${linework_processing_libraries})
endif()
if((NOT WIN32) AND NOT WASM_BUILD AND NOT CREATE_BUNDLE AND NOT CMAKE_INSTALL_RPATH AND COMMAND SET_INSTALL_RPATHS)
# The wrapper exposes RocksDbSerializer, so it has a DT_NEEDED entry for
# the document RDB plug-in. The Python package and CMake library
# directories are normally different, including in CI where the package
# is installed into Python_SITEARCH and plug-ins go to /usr/local/lib.
SET_INSTALL_RPATHS(ifcopenshell_wrapper "${CMAKE_INSTALL_FULL_LIBDIR};${IFCDIRS};${OCC_LIBRARY_DIR}")
if(IFCOPENSHELL_IFCWRAP_STANDALONE)
set(_ifcwrap_ifcopenshell_library_dir "${IFCOPENSHELL_LIBRARY_DIR}")
else()
set(_ifcwrap_ifcopenshell_library_dir "${CMAKE_INSTALL_FULL_LIBDIR}")
endif()
# The Python package and IfcOpenShell libraries can have unrelated install
# prefixes. This is notably the case for standalone ifcwrap builds against
# an installed CMake package and GitHub Actions' hosted Python.
SET_INSTALL_RPATHS(ifcopenshell_wrapper "${_ifcwrap_ifcopenshell_library_dir};${IFCDIRS};${OCC_LIBRARY_DIR}")
elseif((NOT WIN32) AND BUILD_SHARED_LIBS AND COMMAND SET_INSTALL_RPATHS)
SET_INSTALL_RPATHS(ifcopenshell_wrapper "${IFCDIRS};${OCC_LIBRARY_DIR}")
endif()