[kf5] CMakeLists.txt: Fix symlinks for KF5 [5.89,5.100).

For versions where JSON plugin loading is used, but ThumbnailCreator
isn't available yet.
This commit is contained in:
David Korth 2023-07-01 21:20:13 -04:00
parent 0e71d1ad37
commit ed2a9e692b
2 changed files with 40 additions and 13 deletions

8
debian/changelog vendored
View File

@ -1,3 +1,11 @@
rom-properties (2.2-1ppa2~jammy3) jammy; urgency=medium
* KF5: Ensure necessary symlinks are present when installing for KF5
versions [5.89,5.100), where JSON loading is used but the new
ThumbnailCreator interface isn't implemented yet.
-- David Korth <gerbilsoft@gerbilsoft.com> Sat, 01 Jul 2023 21:20:07 -0400
rom-properties (2.2-1ppa2~jammy2) jammy; urgency=medium
* KF5: Fix plugin forwarder paths and don't attempt to install .desktop files.

View File

@ -302,6 +302,8 @@ IF(BUILD_KF5)
"${CMAKE_SOURCE_DIR}/xdg/mime.no-thumbnail.types")
IF(NOT HAVE_JSON_PLUGIN_LOADER)
CONFIGURE_FILE(${PROJECT_NAME}.KPropertiesDialog.desktop.in ${PROJECT_NAME}.KPropertiesDialog.desktop @ONLY)
ENDIF(NOT HAVE_JSON_PLUGIN_LOADER)
IF(NOT HAVE_KIOGUI_KIO_THUMBNAILCREATOR_H)
CONFIGURE_FILE(${PROJECT_NAME}.ThumbCreator.desktop.in ${PROJECT_NAME}.ThumbCreator.desktop @ONLY)
ENDIF(NOT HAVE_JSON_PLUGIN_LOADER)
CONFIGURE_FILE(${PROJECT_NAME}.json.in ${PROJECT_NAME}.json @ONLY)
@ -309,24 +311,42 @@ IF(BUILD_KF5)
CONFIGURE_FILE(OverlayIconPluginForwarder.json.in OverlayIconPluginForwarder.json @ONLY)
IF(HAVE_JSON_PLUGIN_LOADER)
SET(${PROJECT_NAME}_PLUGIN_DIR "${KF5_PRPD_PLUGIN_INSTALL_DIR}")
ELSEIF(HAVE_JSON_PLUGIN_LOADER)
SET(${PROJECT_NAME}_PLUGIN_DIR "${KF5_PLUGIN_INSTALL_DIR}")
ENDIF(HAVE_JSON_PLUGIN_LOADER)
INSTALL(TARGETS ${PROJECT_NAME} ${XATTRVIEW_NAME}
LIBRARY DESTINATION "${${PROJECT_NAME}_PLUGIN_DIR}"
COMPONENT "plugin")
IF(HAVE_KIOGUI_KIO_THUMBNAILCREATOR_H)
# Main plugin is installed in the propertiesdialog subdirectory.
# Create a symlink for ThumbCreator.
# Create a symlink for ThumbnailCreator.
ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ln -sf "${KF5_PRPD_PLUGIN_INSTALL_DIR}/${PROJECT_NAME}.so" "${PROJECT_NAME}.symlink.so"
COMMAND ln -sf "${${PROJECT_NAME}_PLUGIN_DIR}/${PROJECT_NAME}.so" "${PROJECT_NAME}.symlink.ThumbnailCreator.so"
WORKING_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
VERBATIM)
INSTALL(TARGETS ${PROJECT_NAME} ${XATTRVIEW_NAME}
LIBRARY DESTINATION "${KF5_PRPD_PLUGIN_INSTALL_DIR}"
COMPONENT "plugin")
INSTALL(FILES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${PROJECT_NAME}.symlink.so"
INSTALL(FILES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${PROJECT_NAME}.symlink.ThumbnailCreator.so"
DESTINATION "${KF5_THUMB_PLUGIN_INSTALL_DIR}"
RENAME "${PROJECT_NAME}.so"
COMPONENT "plugin")
ELSE(HAVE_JSON_PLUGIN_LOADER)
INSTALL(TARGETS ${PROJECT_NAME} ${XATTRVIEW_NAME}
LIBRARY DESTINATION "${KF5_PLUGIN_INSTALL_DIR}"
ELSE(HAVE_KIOGUI_KIO_THUMBNAILCREATOR_H)
# NOTE: If using JSON plugin loading, we need to create a symlink for
# the old ThumbCreator interface.
IF(HAVE_JSON_PLUGIN_LOADER)
ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ln -sf "${${PROJECT_NAME}_PLUGIN_DIR}/${PROJECT_NAME}.so" "${PROJECT_NAME}.symlink.ForThumbCreator.so"
WORKING_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
VERBATIM)
INSTALL(FILES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${PROJECT_NAME}.symlink.ForThumbCreator.so"
DESTINATION "${KF5_PLUGIN_INSTALL_DIR}"
RENAME "${PROJECT_NAME}.so"
COMPONENT "plugin")
ENDIF(HAVE_JSON_PLUGIN_LOADER)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.ThumbCreator.desktop"
DESTINATION "${SERVICES_INSTALL_DIR}"
COMPONENT "plugin")
ENDIF(HAVE_JSON_PLUGIN_LOADER)
ENDIF(HAVE_KIOGUI_KIO_THUMBNAILCREATOR_H)
INSTALL(TARGETS kfilemetadata_${PROJECT_NAME}
LIBRARY DESTINATION "${KF5_KFMD_PLUGIN_INSTALL_DIR}"
@ -336,10 +356,9 @@ IF(BUILD_KF5)
COMPONENT "plugin")
IF(NOT HAVE_JSON_PLUGIN_LOADER)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.KPropertiesDialog.desktop"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.ThumbCreator.desktop"
"${XATTRVIEW_NAME}.desktop"
DESTINATION "${SERVICES_INSTALL_DIR}"
COMPONENT "plugin")
DESTINATION "${SERVICES_INSTALL_DIR}"
COMPONENT "plugin")
ENDIF(NOT HAVE_JSON_PLUGIN_LOADER)
# FIXME: Run kbuildsycoca5?