project(kio_recoll) cmake_minimum_required(VERSION 2.8.12) include(FeatureSummary) set(QT_MIN_VERSION 5.2.0) set(KF5_MIN_VERSION 5.0.0) find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Network Widgets) find_package(ECM REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) # CoreAddons? find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS KIO) add_definitions(-DQT_NO_URL_CAST_FROM_STRING) include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ) ## Recoll stuff add_definitions( -DRECOLL_DATADIR="${CMAKE_INSTALL_PREFIX}/share/recoll" -DLIBDIR="${CMAKE_INSTALL_PREFIX}/lib" -DHAVE_CONFIG_H ) set(rcltop ${CMAKE_CURRENT_SOURCE_DIR}/../../../) # Execute recoll configuration to create autoconfig.h and version.h and # generate a PIC lib execute_process(COMMAND ${rcltop}/configure --disable-static --disable-qtgui --disable-x11mon --prefix=${CMAKE_INSTALL_PREFIX} --mandir=${CMAKE_INSTALL_PREFIX}/share/man WORKING_DIRECTORY ${rcltop} ) link_directories(${rcltop}/.libs ${CMAKE_INSTALL_PREFIX}/lib) include_directories (${CMAKE_SOURCE_DIR} ${rcltop}/aspell ${rcltop}/bincimapmime ${rcltop}/common ${rcltop}/index ${rcltop}/internfile ${rcltop}/query ${rcltop}/rcldb ${rcltop}/unac ${rcltop}/utils ${rcltop}/qtgui ) set(kio_recoll_SRCS kio_recoll.cpp htmlif.cpp dirif.cpp ${rcltop}/qtgui/guiutils.cpp) # Had the idea to add e.g. /usr/lib/recoll to the rpath so that the dyn lib # will be found at run time. But this does not seem to work with debian # which strips RPATH by default (I think there is a way for libs in app-specific # paths but I did not find it). Link with the .a instead. #SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib/recoll") add_library(kio_recoll MODULE ${kio_recoll_SRCS}) add_custom_target(rcllib COMMAND make -j 3 PicStatic WORKING_DIRECTORY ${rcltop} ) add_dependencies(kio_recoll rcllib) target_link_libraries(kio_recoll recoll xapian KF5::KIOCore dl z pthread ) install(FILES recoll.protocol recollf.protocol DESTINATION ${SERVICES_INSTALL_DIR}) install(FILES data/welcome.html data/help.html DESTINATION ${DATA_INSTALL_DIR}/kio_recoll) # Tried but could not use PLUGIN_INSTALL_DIR (/usr/lib64/plugins), or # /usr/lib64/qt5/plugins/kf5/kio/recoll.so: the module is not found by # dolphin). Actually that's because of the protocol file. recoll has # exec=kio_recoll, file has exec=kf5/kio/file set_target_properties(kio_recoll PROPERTIES OUTPUT_NAME "kio_recoll") install(TARGETS kio_recoll DESTINATION ${LIB_INSTALL_DIR}/qt5/plugins)