macro (copyq_add_plugin copyq_pkg) file(GLOB copyq_plugin_SOURCES ${copyq_plugin_${copyq_pkg}_external_SOURCES} *.cpp ) file(GLOB copyq_plugin_FORMS ${copyq_plugin_${copyq_pkg}_FORMS} *.ui ) set_source_files_properties( ${copyq_plugin_${copyq_pkg}_SOURCES} PROPERTIES COMPILE_OPTIONS "${copyq_pedantic_flags}") qt_wrap_ui(copyq_plugin_FORMS_HEADERS ${copyq_plugin_FORMS}) qt_add_resources(copyq_plugin_RCC ${copyq_plugin_${copyq_pkg}_RESOURCES}) add_library(${copyq_pkg} MODULE ${copyq_plugin_SOURCES} ${copyq_plugin_FORMS_HEADERS} ${copyq_plugin_RCC} ${copyq_plugin_${copyq_pkg}_SOURCES} $ ) set_target_properties(${copyq_pkg} PROPERTIES COMPILE_DEFINITIONS "${copyq_plugin_${copyq_pkg}_DEFINITIONS}") target_link_libraries(${copyq_pkg} ${copyq_LIBRARIES} ${copyq_plugin_${copyq_pkg}_LIBRARIES}) target_include_directories(${copyq_pkg} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ../../src) if (UNIX AND NOT APPLE) install(TARGETS ${copyq_pkg} DESTINATION ${PLUGIN_INSTALL_PREFIX}) elseif (APPLE) set(copyq_plugins_dest_dir "${COPYQ_EXECUTABLE_NAME}.app/Contents/PlugIns/copyq") install(TARGETS ${copyq_pkg} DESTINATION "${copyq_plugins_dest_dir}" COMPONENT Runtime) get_property(_copyq_installed_plugins GLOBAL PROPERTY COPYQ_INSTALLED_PLUGINS) # We need this list to perform fixups during the creation of an application bundle (in src) list(APPEND _copyq_installed_plugins "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${copyq_plugins_dest_dir}/${CMAKE_SHARED_MODULE_PREFIX}${copyq_pkg}${CMAKE_SHARED_MODULE_SUFFIX}" ) set_property(GLOBAL PROPERTY COPYQ_INSTALLED_PLUGINS "${_copyq_installed_plugins}") endif() endmacro() set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/plugins) macro (copyq_add_plugin_obj copyq_mod) add_library(${copyq_mod} OBJECT ${ARGN}) set_target_properties(${copyq_mod} PROPERTIES POSITION_INDEPENDENT_CODE ON) target_link_libraries(${copyq_mod} ${copyq_LIBRARIES}) target_include_directories(${copyq_mod} PRIVATE ../src) endmacro() copyq_add_plugin_obj(copyq-plugin-common ../src/item/itemwidget.cpp ../src/common/mimetypes.cpp ) copyq_add_plugin_obj(copyq-plugin-wrapper ../src/item/itemwidgetwrapper.cpp) copyq_add_plugin_obj(copyq-plugin-textdata ../src/common/textdata.cpp) copyq_add_plugin_obj(copyq-plugin-geometry ../src/gui/geometry.cpp) copyq_add_plugin_obj(copyq-plugin-screen ../src/gui/screen.cpp) copyq_add_plugin_obj(copyq-plugin-serialize ../src/item/serialize.cpp ../src/common/encryption.cpp ) copyq_add_plugin_obj(copyq-plugin-config ../src/common/config.cpp) copyq_add_plugin_obj(copyq-plugin-iconfont ../src/gui/iconfont.cpp) copyq_add_plugin_obj(copyq-plugin-iconwidget ../src/gui/iconwidget.cpp) add_subdirectory("itemencrypted") add_subdirectory("itemfakevim") add_subdirectory("itemimage") add_subdirectory("itemnotes") add_subdirectory("itempinned") add_subdirectory("itemtags") add_subdirectory("itemtext") add_subdirectory("itemsync")