diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -48,11 +48,13 @@ set(extracthere_SRCS batchextract.cpp extractHereDndPlugin.cpp ark_debug.cpp) -add_library(extracthere MODULE ${extracthere_SRCS}) +kcoreaddons_add_plugin(extracthere + SOURCES ${extracthere_SRCS} + INSTALL_NAMESPACE kf5/kio_dnd) + kcoreaddons_desktop_to_json(extracthere ${CMAKE_CURRENT_BINARY_DIR}/ark_dndextract.desktop DEFAULT_SERVICE_TYPE) target_link_libraries(extracthere kerfuffle KF5::Parts KF5::KIOWidgets KF5::KIOFileWidgets) -install(TARGETS extracthere DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kio_dnd) # compressfileitemaction plugin diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -1,3 +1,10 @@ +function(kerfuffle_add_plugin plugin) + kcoreaddons_add_plugin(${plugin} + SOURCES ${ARGN} + INSTALL_NAMESPACE kerfuffle) + target_link_libraries(${plugin} kerfuffle) +endfunction() + add_subdirectory( libarchive ) add_subdirectory( clirarplugin ) add_subdirectory( cli7zplugin ) diff --git a/plugins/cli7zplugin/CMakeLists.txt b/plugins/cli7zplugin/CMakeLists.txt --- a/plugins/cli7zplugin/CMakeLists.txt +++ b/plugins/cli7zplugin/CMakeLists.txt @@ -9,7 +9,6 @@ IDENTIFIER ARK CATEGORY_NAME ark.cli7z) - # NOTE: the first double-quotes of the first mime and the last # double-quotes of the last mime must NOT be escaped. set(SUPPORTED_MIMETYPES @@ -20,13 +19,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/kerfuffle_cli7z.json.cmake ${CMAKE_CURRENT_BINARY_DIR}/kerfuffle_cli7z.json) -add_library(kerfuffle_cli7z MODULE ${kerfuffle_cli7z_SRCS}) - -target_link_libraries(kerfuffle_cli7z kerfuffle) - -########### install files ############### - -install(TARGETS kerfuffle_cli7z DESTINATION ${KDE_INSTALL_PLUGINDIR}/kerfuffle) +kerfuffle_add_plugin(kerfuffle_cli7z ${kerfuffle_cli7z_SRCS}) set(SUPPORTED_ARK_MIMETYPES "${SUPPORTED_ARK_MIMETYPES}${SUPPORTED_CLI7Z_MIMETYPES}" PARENT_SCOPE) set(INSTALLED_KERFUFFLE_PLUGINS "${INSTALLED_KERFUFFLE_PLUGINS}kerfuffle_cli7z;" PARENT_SCOPE) diff --git a/plugins/cliplugin-example/CMakeLists.txt b/plugins/cliplugin-example/CMakeLists.txt --- a/plugins/cliplugin-example/CMakeLists.txt +++ b/plugins/cliplugin-example/CMakeLists.txt @@ -5,8 +5,4 @@ IDENTIFIER ARK CATEGORY_NAME ark.cliexample) -add_library(kerfuffle_cli ${kerfuffle_cli_SRCS}) -target_link_libraries(kerfuffle_cli KF5::KIOCore kerfuffle) - -install(TARGETS kerfuffle_cli DESTINATION ${KDE_INSTALL_PLUGINDIR}/kerfuffle) - +kerfuffle_add_plugin(kerfuffle_cli ${kerfuffle_cli_SRCS}) diff --git a/plugins/clirarplugin/CMakeLists.txt b/plugins/clirarplugin/CMakeLists.txt --- a/plugins/clirarplugin/CMakeLists.txt +++ b/plugins/clirarplugin/CMakeLists.txt @@ -9,18 +9,13 @@ IDENTIFIER ARK CATEGORY_NAME ark.clirar) - set(SUPPORTED_MIMETYPES "application/x-rar") configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/kerfuffle_clirar.json.cmake ${CMAKE_CURRENT_BINARY_DIR}/kerfuffle_clirar.json) -add_library(kerfuffle_clirar MODULE ${kerfuffle_clirar_SRCS}) - -target_link_libraries(kerfuffle_clirar kerfuffle) - -install(TARGETS kerfuffle_clirar DESTINATION ${KDE_INSTALL_PLUGINDIR}/kerfuffle) +kerfuffle_add_plugin(kerfuffle_clirar ${kerfuffle_clirar_SRCS}) set(SUPPORTED_ARK_MIMETYPES "${SUPPORTED_ARK_MIMETYPES}${SUPPORTED_CLIRAR_MIMETYPES}" PARENT_SCOPE) set(INSTALLED_KERFUFFLE_PLUGINS "${INSTALLED_KERFUFFLE_PLUGINS}kerfuffle_clirar;" PARENT_SCOPE) diff --git a/plugins/cliunarchiverplugin/CMakeLists.txt b/plugins/cliunarchiverplugin/CMakeLists.txt --- a/plugins/cliunarchiverplugin/CMakeLists.txt +++ b/plugins/cliunarchiverplugin/CMakeLists.txt @@ -9,18 +9,13 @@ IDENTIFIER ARK CATEGORY_NAME ark.cliunarchiver) - set(SUPPORTED_MIMETYPES "application/x-rar") configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/kerfuffle_cliunarchiver.json.cmake ${CMAKE_CURRENT_BINARY_DIR}/kerfuffle_cliunarchiver.json) -add_library(kerfuffle_cliunarchiver MODULE ${kerfuffle_cliunarchiver_SRCS}) - -target_link_libraries(kerfuffle_cliunarchiver kerfuffle) - -install(TARGETS kerfuffle_cliunarchiver DESTINATION ${KDE_INSTALL_PLUGINDIR}/kerfuffle) +kerfuffle_add_plugin(kerfuffle_cliunarchiver ${kerfuffle_cliunarchiver_SRCS}) set(SUPPORTED_ARK_MIMETYPES "${SUPPORTED_ARK_MIMETYPES}${SUPPORTED_CLIUNARCHIVER_MIMETYPES}" PARENT_SCOPE) diff --git a/plugins/clizipplugin/CMakeLists.txt b/plugins/clizipplugin/CMakeLists.txt --- a/plugins/clizipplugin/CMakeLists.txt +++ b/plugins/clizipplugin/CMakeLists.txt @@ -19,11 +19,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/kerfuffle_clizip.json.cmake ${CMAKE_CURRENT_BINARY_DIR}/kerfuffle_clizip.json) -add_library(kerfuffle_clizip MODULE ${kerfuffle_clizip_SRCS}) - -target_link_libraries(kerfuffle_clizip kerfuffle ) - -install(TARGETS kerfuffle_clizip DESTINATION ${KDE_INSTALL_PLUGINDIR}/kerfuffle) +kerfuffle_add_plugin(kerfuffle_clizip ${kerfuffle_clizip_SRCS}) set(SUPPORTED_ARK_MIMETYPES "${SUPPORTED_ARK_MIMETYPES}${SUPPORTED_CLIZIP_MIMETYPES}" PARENT_SCOPE) set(INSTALLED_KERFUFFLE_PLUGINS "${INSTALLED_KERFUFFLE_PLUGINS}kerfuffle_clizip;" PARENT_SCOPE) diff --git a/plugins/libarchive/CMakeLists.txt b/plugins/libarchive/CMakeLists.txt --- a/plugins/libarchive/CMakeLists.txt +++ b/plugins/libarchive/CMakeLists.txt @@ -66,21 +66,18 @@ ${CMAKE_CURRENT_SOURCE_DIR}/kerfuffle_libarchive.json.cmake ${CMAKE_CURRENT_BINARY_DIR}/kerfuffle_libarchive.json) -add_library(kerfuffle_libarchive_readonly MODULE ${kerfuffle_libarchive_readonly_SRCS}) -add_library(kerfuffle_libarchive MODULE ${kerfuffle_libarchive_readwrite_SRCS}) +kerfuffle_add_plugin(kerfuffle_libarchive_readonly ${kerfuffle_libarchive_readonly_SRCS}) +kerfuffle_add_plugin(kerfuffle_libarchive ${kerfuffle_libarchive_readwrite_SRCS}) if(LibArchive_VERSION VERSION_EQUAL "3.2.0" OR LibArchive_VERSION VERSION_GREATER "3.2.0") target_compile_definitions(kerfuffle_libarchive PRIVATE -DHAVE_LIBARCHIVE_3_2_0) endif() -target_link_libraries(kerfuffle_libarchive_readonly KF5::KIOCore ${LibArchive_LIBRARIES} kerfuffle) -target_link_libraries(kerfuffle_libarchive KF5::KIOCore ${LibArchive_LIBRARIES} kerfuffle) +target_link_libraries(kerfuffle_libarchive_readonly ${LibArchive_LIBRARIES}) +target_link_libraries(kerfuffle_libarchive ${LibArchive_LIBRARIES}) -install(TARGETS kerfuffle_libarchive_readonly DESTINATION ${KDE_INSTALL_PLUGINDIR}/kerfuffle) set(INSTALLED_LIBARCHIVE_PLUGINS "${INSTALLED_LIBARCHIVE_PLUGINS}kerfuffle_libarchive_readonly;") - -install(TARGETS kerfuffle_libarchive DESTINATION ${KDE_INSTALL_PLUGINDIR}/kerfuffle) set(INSTALLED_LIBARCHIVE_PLUGINS "${INSTALLED_LIBARCHIVE_PLUGINS}kerfuffle_libarchive;") set(SUPPORTED_ARK_MIMETYPES "${SUPPORTED_ARK_MIMETYPES}${SUPPORTED_LIBARCHIVE_READWRITE_MIMETYPES}${SUPPORTED_LIBARCHIVE_READONLY_MIMETYPES}" PARENT_SCOPE) diff --git a/plugins/libsinglefileplugin/CMakeLists.txt b/plugins/libsinglefileplugin/CMakeLists.txt --- a/plugins/libsinglefileplugin/CMakeLists.txt +++ b/plugins/libsinglefileplugin/CMakeLists.txt @@ -23,21 +23,19 @@ PURPOSE "Required for .gz format support in Ark") if (ZLIB_FOUND) - set(kerfuffle_libgz_SRCS gzplugin.cpp ${kerfuffle_singlefile_SRCS}) - set(SUPPORTED_LIBSINGLEFILE_MIMETYPES "${SUPPORTED_LIBSINGLEFILE_MIMETYPES}application/gzip;") + set(kerfuffle_libgz_SRCS gzplugin.cpp ${kerfuffle_singlefile_SRCS}) + set(SUPPORTED_LIBSINGLEFILE_MIMETYPES "${SUPPORTED_LIBSINGLEFILE_MIMETYPES}application/gzip;") set(SUPPORTED_MIMETYPES "application/gzip") configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/kerfuffle_libgz.json.cmake ${CMAKE_CURRENT_BINARY_DIR}/kerfuffle_libgz.json) - add_library(kerfuffle_libgz MODULE ${kerfuffle_libgz_SRCS}) + kerfuffle_add_plugin(kerfuffle_libgz ${kerfuffle_libgz_SRCS}) + target_link_libraries(kerfuffle_libgz KF5::Archive) - target_link_libraries(kerfuffle_libgz KF5::Archive KF5::KIOCore kerfuffle) - - install(TARGETS kerfuffle_libgz DESTINATION ${KDE_INSTALL_PLUGINDIR}/kerfuffle) - set(INSTALLED_LIBSINGLEFILE_PLUGINS "${INSTALLED_LIBSINGLEFILE_PLUGINS}kerfuffle_libgz;") + set(INSTALLED_LIBSINGLEFILE_PLUGINS "${INSTALLED_LIBSINGLEFILE_PLUGINS}kerfuffle_libgz;") endif (ZLIB_FOUND) # @@ -59,12 +57,10 @@ ${CMAKE_CURRENT_SOURCE_DIR}/kerfuffle_libbz2.json.cmake ${CMAKE_CURRENT_BINARY_DIR}/kerfuffle_libbz2.json) - add_library(kerfuffle_libbz2 MODULE ${kerfuffle_libbz2_SRCS}) - - target_link_libraries(kerfuffle_libbz2 KF5::Archive KF5::KIOCore kerfuffle) + kerfuffle_add_plugin(kerfuffle_libbz2 ${kerfuffle_libbz2_SRCS}) + target_link_libraries(kerfuffle_libbz2 KF5::Archive) - install(TARGETS kerfuffle_libbz2 DESTINATION ${KDE_INSTALL_PLUGINDIR}/kerfuffle) - set(INSTALLED_LIBSINGLEFILE_PLUGINS "${INSTALLED_LIBSINGLEFILE_PLUGINS}kerfuffle_libbz2;") + set(INSTALLED_LIBSINGLEFILE_PLUGINS "${INSTALLED_LIBSINGLEFILE_PLUGINS}kerfuffle_libbz2;") endif (BZIP2_FOUND) # @@ -90,12 +86,10 @@ ${CMAKE_CURRENT_SOURCE_DIR}/kerfuffle_libxz.json.cmake ${CMAKE_CURRENT_BINARY_DIR}/kerfuffle_libxz.json) - add_library(kerfuffle_libxz MODULE ${kerfuffle_libxz_SRCS}) - - target_link_libraries(kerfuffle_libxz KF5::Archive KF5::KIOCore kerfuffle ) + kerfuffle_add_plugin(kerfuffle_libxz ${kerfuffle_libxz_SRCS}) + target_link_libraries(kerfuffle_libxz KF5::Archive) - install(TARGETS kerfuffle_libxz DESTINATION ${KDE_INSTALL_PLUGINDIR}/kerfuffle) - set(INSTALLED_LIBSINGLEFILE_PLUGINS "${INSTALLED_LIBSINGLEFILE_PLUGINS}kerfuffle_libxz;") + set(INSTALLED_LIBSINGLEFILE_PLUGINS "${INSTALLED_LIBSINGLEFILE_PLUGINS}kerfuffle_libxz;") endif (LIBLZMA_FOUND) set(SUPPORTED_ARK_MIMETYPES "${SUPPORTED_ARK_MIMETYPES}${SUPPORTED_LIBSINGLEFILE_MIMETYPES}" PARENT_SCOPE)