You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
643 lines
20 KiB
643 lines
20 KiB
cmake_minimum_required(VERSION 3.22) |
|
|
|
# KDE Application Version, managed by release script |
|
set (RELEASE_SERVICE_VERSION_MAJOR "23") |
|
set (RELEASE_SERVICE_VERSION_MINOR "07") |
|
set (RELEASE_SERVICE_VERSION_MICRO "70") |
|
set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") |
|
|
|
project(okular VERSION ${RELEASE_SERVICE_VERSION}) |
|
|
|
set(QT_REQUIRED_VERSION "5.15.2") # Remember to update the QT_DEPRECATED_WARNINGS_SINCE below |
|
set(KF5_REQUIRED_VERSION "5.92.0") # Remember to update the KF_DEPRECATED_WARNINGS_SINCE below |
|
|
|
set(OKULAR_UI "" CACHE STRING "Which Okular user interface to build. Possible values: desktop, mobile, both. Default: desktop (except on Android, where it is 'mobile')") |
|
|
|
option(FORCE_NOT_REQUIRED_DEPENDENCIES "List (semicolon-separated) of dependencies that will be downgraded from REQUIRED to RECOMMENDED") |
|
|
|
if (ANDROID AND (NOT FORCE_NOT_REQUIRED_DEPENDENCIES) AND (NOT FORCE_NOT_REQUIRED_DEPENDENCIES STREQUAL "")) |
|
set(FORCE_NOT_REQUIRED_DEPENDENCIES "KF5Wallet;KF5DocTools;KF5JS;TIFF;JPEG;LibSpectre;KF5KExiv2;CHM;KF5KHtml;LibZip;DjVuLibre;EPub;Discount;") |
|
endif() |
|
|
|
function(set_okular_optional_package_properties _name _props) |
|
if(NOT "${_props}" STREQUAL "PROPERTIES") |
|
message(FATAL_ERROR "PROPERTIES keyword is missing in set_okular_optional_package_properties() call.") |
|
endif() |
|
|
|
set(options) # none |
|
set(oneValueArgs DESCRIPTION URL PURPOSE) |
|
set(multiValueArgs) # none |
|
|
|
CMAKE_PARSE_ARGUMENTS(_SPP "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) |
|
|
|
if(_SPP_UNPARSED_ARGUMENTS) |
|
message(FATAL_ERROR "Unknown keywords given to set_okular_optional_package_properties(): \"${_SPP_UNPARSED_ARGUMENTS}\"") |
|
endif() |
|
|
|
set(DEPENDENCY_TYPE "REQUIRED") |
|
if (${_name} IN_LIST FORCE_NOT_REQUIRED_DEPENDENCIES) |
|
set(DEPENDENCY_TYPE "RECOMMENDED") |
|
endif() |
|
set_package_properties(${_name} PROPERTIES |
|
TYPE ${DEPENDENCY_TYPE} |
|
DESCRIPTION ${_SPP_DESCRIPTION} |
|
URL ${_SPP_URL} |
|
PURPOSE "${_SPP_PURPOSE} You can make the dependency optional adding ${_name} to the FORCE_NOT_REQUIRED_DEPENDENCIES cmake option" |
|
) |
|
endfunction() |
|
|
|
if(OKULAR_UI STREQUAL "") |
|
if(ANDROID) |
|
set(OKULAR_UI "mobile") |
|
else() |
|
set(OKULAR_UI "desktop") |
|
endif() |
|
endif() |
|
|
|
if(OKULAR_UI STREQUAL "desktop" OR OKULAR_UI STREQUAL "both") |
|
set(BUILD_DESKTOP ON) |
|
else() |
|
set(BUILD_DESKTOP OFF) |
|
endif() |
|
if(OKULAR_UI STREQUAL "mobile" OR OKULAR_UI STREQUAL "both") |
|
set(BUILD_MOBILE ON) |
|
else() |
|
set(BUILD_MOBILE OFF) |
|
endif() |
|
|
|
if (BUILD_MOBILE) |
|
set(QT_REQUIRED_VERSION "5.15.2") |
|
endif() |
|
|
|
find_package(ECM ${KF5_REQUIRED_VERSION} CONFIG REQUIRED) |
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) |
|
|
|
include(ECMInstallIcons) |
|
include(ECMSetupVersion) |
|
include(ECMOptionalAddSubdirectory) |
|
include(GenerateExportHeader) |
|
include(FeatureSummary) |
|
include(ECMAddAppIcon) |
|
include(KDECompilerSettings NO_POLICY_SCOPE) |
|
include(KDEInstallDirs) |
|
include(KDECMakeSettings) |
|
include(ECMAddTests) |
|
include(ECMAddAppIcon) |
|
include(CMakePackageConfigHelpers) |
|
include(ECMSetupQtPluginMacroNames) |
|
|
|
# append the plugins from the install tree folder to the QT_PLUGIN_PATH |
|
if(UNIX) |
|
set(ENV{QT_PLUGIN_PATH} "$ENV{QT_PLUGIN_PATH}:${KDE_INSTALL_FULL_QTPLUGINDIR}") |
|
elseif(WIN32) |
|
set(ENV{QT_PLUGIN_PATH} "$ENV{QT_PLUGIN_PATH};${KDE_INSTALL_FULL_QTPLUGINDIR}") |
|
endif() |
|
|
|
set(CMAKE_CXX_STANDARD 17) |
|
set(CMAKE_CXX_STANDARD_REQUIRED ON) |
|
set(CMAKE_CXX_EXTENSIONS OFF) |
|
|
|
ecm_setup_version(${PROJECT_VERSION} |
|
VARIABLE_PREFIX OKULAR |
|
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/core/version.h" |
|
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/Okular5ConfigVersion.cmake") |
|
|
|
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED COMPONENTS Core Test Widgets PrintSupport Svg Qml Quick) |
|
|
|
if(ANDROID) |
|
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED COMPONENTS AndroidExtras) |
|
endif() |
|
|
|
ecm_setup_qtplugin_macro_names( |
|
JSON_ARG2 |
|
"OKULAR_EXPORT_PLUGIN" |
|
CONFIG_CODE_VARIABLE |
|
PACKAGE_SETUP_AUTOMOC_VARIABLES |
|
) |
|
|
|
find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS |
|
Archive |
|
Bookmarks |
|
Completion |
|
Config |
|
ConfigWidgets |
|
CoreAddons |
|
I18n |
|
KIO |
|
ThreadWeaver |
|
WindowSystem |
|
) |
|
|
|
find_package(KF5Wallet ${KF5_REQUIRED_VERSION}) |
|
set_okular_optional_package_properties(KF5Wallet PROPERTIES |
|
PURPOSE "Required for document storing passwords in secure wallets.") |
|
if(KF5Wallet_FOUND) |
|
add_definitions(-DWITH_KWALLET=1) |
|
endif() |
|
|
|
find_package(KF5DocTools ${KF5_REQUIRED_VERSION}) |
|
set_okular_optional_package_properties(KF5DocTools PROPERTIES |
|
PURPOSE "Required for compiling and installing the user documentation.") |
|
|
|
find_package(KF5JS ${KF5_REQUIRED_VERSION}) |
|
set_okular_optional_package_properties(KF5JS PROPERTIES |
|
PURPOSE "Required for supporting JavaScript in PDF documents") |
|
if(KF5JS_FOUND) |
|
add_definitions(-DWITH_KJS=1) |
|
endif() |
|
|
|
if (BUILD_DESKTOP) |
|
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED COMPONENTS DBus) |
|
find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS Parts Crash IconThemes TextWidgets) |
|
|
|
find_package(KF5Purpose) |
|
set_okular_optional_package_properties(KF5Purpose PROPERTIES |
|
DESCRIPTION "A framework for services and actions integration" |
|
PURPOSE "Required for enabling the share menu.") |
|
if (KF5Purpose_FOUND) |
|
set(PURPOSE_FOUND 1) |
|
else() |
|
set(PURPOSE_FOUND 0) |
|
endif() |
|
|
|
find_package(Qt5TextToSpeech ${QT_REQUIRED_VERSION} CONFIG) |
|
set_okular_optional_package_properties(Qt5TextToSpeech PROPERTIES |
|
PURPOSE "Enables speech features.") |
|
if (Qt5TextToSpeech_FOUND) |
|
add_definitions(-DHAVE_SPEECH) |
|
endif() |
|
endif() |
|
|
|
if (BUILD_MOBILE) |
|
find_package(KF5Kirigami2) |
|
set_package_properties(KF5Kirigami2 PROPERTIES |
|
DESCRIPTION "A QtQuick based components set" |
|
PURPOSE "Required at runtime by the mobile app" |
|
TYPE RUNTIME |
|
) |
|
endif() |
|
|
|
if(NOT WIN32 AND NOT ANDROID AND NOT APPLE) |
|
find_package(KF5 ${KF5_REQUIRED_VERSION} REQUIRED COMPONENTS |
|
Activities |
|
) |
|
set_package_properties("KF5Activities" PROPERTIES |
|
DESCRIPTION "Activities interface library" |
|
URL "https://api.kde.org/frameworks/kactivities/html/" |
|
PURPOSE "Required for Activities integration.") |
|
|
|
find_package(Qt5X11Extras REQUIRED) |
|
set(HAVE_X11 TRUE) |
|
else() |
|
set(HAVE_X11 FALSE) |
|
endif() |
|
find_package(Phonon4Qt5 CONFIG REQUIRED) |
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/modules) |
|
|
|
find_package(ZLIB REQUIRED) |
|
|
|
find_package(Poppler "22.02.0" COMPONENTS Qt5) |
|
set_okular_optional_package_properties(Poppler PROPERTIES |
|
PURPOSE "Support for PDF files in okular.") |
|
|
|
find_package(Freetype) |
|
set_okular_optional_package_properties(Freetype PROPERTIES |
|
DESCRIPTION "A font rendering engine" |
|
URL "https://www.freetype.org" |
|
PURPOSE "Provides freetype font support in the okular DVI generator.") |
|
|
|
find_package(TIFF) |
|
set_okular_optional_package_properties(TIFF PROPERTIES |
|
DESCRIPTION "A library for reading and writing TIFF formatted files," |
|
URL "http://www.libtiff.org" |
|
PURPOSE "Support for TIFF files in okular.") |
|
|
|
find_package(JPEG) |
|
set_okular_optional_package_properties(JPEG PROPERTIES |
|
DESCRIPTION "A library for reading and writing JPEG image files." |
|
URL "https://www.ijg.org" |
|
PURPOSE "Support for PalmDB documents in okular.") |
|
|
|
set(LIBSPECTRE_MINIMUM_VERSION "0.2") |
|
find_package(LibSpectre "${LIBSPECTRE_MINIMUM_VERSION}") |
|
set_okular_optional_package_properties(LibSpectre PROPERTIES |
|
DESCRIPTION "A PostScript rendering library" |
|
URL "https://libspectre.freedesktop.org" |
|
PURPOSE "Support for PS files in okular.") |
|
|
|
find_package(KF5KExiv2 CONFIG) |
|
set_okular_optional_package_properties(KF5KExiv2 PROPERTIES |
|
DESCRIPTION "Wrapper around Exiv2 library" |
|
URL "https://commits.kde.org/libkexiv2" |
|
PURPOSE "Support for exif rotation in image files.") |
|
|
|
find_package(CHM) |
|
set_okular_optional_package_properties(CHM PROPERTIES |
|
DESCRIPTION "A library for dealing with Microsoft ITSS/CHM format files" |
|
URL "http://www.jedrea.com/chmlib" |
|
PURPOSE "Support CHM files in okular.") |
|
|
|
find_package(KF5KHtml CONFIG) |
|
set_okular_optional_package_properties(KF5KHtml PROPERTIES |
|
DESCRIPTION "HTML rendering library" |
|
PURPOSE "Support CHM files in okular.") |
|
|
|
find_package(LibZip) |
|
set_okular_optional_package_properties(LibZip PROPERTIES |
|
DESCRIPTION "A library for reading, creating, and modifying zip archives" |
|
URL "https://libzip.org/" |
|
PURPOSE "Support CHM files in okular.") |
|
|
|
find_package(DjVuLibre "3.5.28") |
|
set_okular_optional_package_properties(DjVuLibre PROPERTIES |
|
DESCRIPTION "A library for dealing with DjVu formatted files" |
|
URL "https://djvulibre.djvuzone.org" |
|
PURPOSE "Support for DjVu files in okular.") |
|
|
|
find_package(EPub) |
|
set_okular_optional_package_properties(EPub PROPERTIES |
|
DESCRIPTION "A library for reading EPub documents" |
|
URL "http://sourceforge.net/projects/ebook-tools" |
|
PURPOSE "Support for EPub documents in Okular.") |
|
|
|
find_package(QMobipocket "2" CONFIG) |
|
set_okular_optional_package_properties(QMobipocket PROPERTIES |
|
DESCRIPTION "A library for reading Mobipocket documents" |
|
URL "https://commits.kde.org/kdegraphics-mobipocket" |
|
PURPOSE "Support for Mobipocket documents in Okular.") |
|
|
|
find_package(Discount) |
|
set_okular_optional_package_properties(Discount PROPERTIES |
|
DESCRIPTION "A library that gives you formatting functions suitable for marking down entire documents or lines of text" |
|
URL "https://www.pell.portland.or.us/~orc/Code/discount/" |
|
PURPOSE "Support for Markdown documents in Okular.") |
|
|
|
add_definitions(-DTRANSLATION_DOMAIN="okular") |
|
add_definitions(-DQT_DEPRECATED_WARNINGS_SINCE=0x050F02) |
|
add_definitions(-DKF_DEPRECATED_WARNINGS_SINCE=0x055C00) |
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${PHONON_INCLUDES} core/synctex ${CMAKE_BINARY_DIR}/core) |
|
|
|
option(BUILD_COVERAGE "Build the project with gcov support" OFF) |
|
|
|
if(BUILD_COVERAGE) |
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") |
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov") |
|
endif() |
|
|
|
add_subdirectory( icons ) # an own directory for multi-size icons retrieved by KIconThemeLoader |
|
add_subdirectory( part ) |
|
if(BUILD_DESKTOP) |
|
add_subdirectory( shell ) |
|
endif() |
|
add_subdirectory( generators ) |
|
|
|
if(BUILD_MOBILE) |
|
add_subdirectory( mobile ) |
|
endif() |
|
|
|
if(BUILD_TESTING) |
|
add_subdirectory( autotests ) |
|
endif() |
|
|
|
if(KF5DocTools_FOUND) |
|
add_subdirectory(doc) |
|
endif() |
|
|
|
include(OkularConfigureChecks.cmake) |
|
|
|
if(NOT WIN32) |
|
set(MATH_LIB m) |
|
else(NOT WIN32) |
|
set(MATH_LIB) |
|
endif(NOT WIN32) |
|
|
|
# okularcore |
|
|
|
set(okularcore_SRCS |
|
core/action.cpp |
|
core/annotations.cpp |
|
core/area.cpp |
|
core/audioplayer.cpp |
|
core/bookmarkmanager.cpp |
|
core/chooseenginedialog.cpp |
|
core/document.cpp |
|
core/documentcommands.cpp |
|
core/fontinfo.cpp |
|
core/form.cpp |
|
core/generator.cpp |
|
core/generator_p.cpp |
|
core/misc.cpp |
|
core/movie.cpp |
|
core/observer.cpp |
|
core/debug.cpp |
|
core/page.cpp |
|
core/pagecontroller.cpp |
|
core/pagesize.cpp |
|
core/pagetransition.cpp |
|
core/rotationjob.cpp |
|
core/scripter.cpp |
|
core/sound.cpp |
|
core/sourcereference.cpp |
|
core/textdocumentgenerator.cpp |
|
core/textdocumentsettings.cpp |
|
core/textpage.cpp |
|
core/tilesmanager.cpp |
|
core/utils.cpp |
|
core/view.cpp |
|
core/fileprinter.cpp |
|
core/printoptionswidget.cpp |
|
core/signatureutils.cpp |
|
core/script/event.cpp |
|
core/synctex/synctex_parser.c |
|
core/synctex/synctex_parser_utils.c |
|
) |
|
qt5_add_resources(okularcore_SRCS |
|
core/script/builtin.qrc |
|
) |
|
|
|
ki18n_wrap_ui(okularcore_SRCS |
|
part/textdocumentsettings.ui |
|
) |
|
|
|
install( FILES |
|
core/action.h |
|
core/annotations.h |
|
core/area.h |
|
core/document.h |
|
core/fontinfo.h |
|
core/form.h |
|
core/generator.h |
|
core/global.h |
|
core/page.h |
|
core/pagesize.h |
|
core/pagetransition.h |
|
core/signatureutils.h |
|
core/sound.h |
|
core/sourcereference.h |
|
core/textdocumentgenerator.h |
|
core/textdocumentsettings.h |
|
core/textpage.h |
|
core/tile.h |
|
core/utils.h |
|
core/fileprinter.h |
|
core/printoptionswidget.h |
|
core/observer.h |
|
${CMAKE_CURRENT_BINARY_DIR}/core/version.h |
|
${CMAKE_CURRENT_BINARY_DIR}/core/okularcore_export.h |
|
${CMAKE_CURRENT_BINARY_DIR}/settings_core.h |
|
DESTINATION ${KDE_INSTALL_INCLUDEDIR}/okular/core COMPONENT Devel) |
|
|
|
install( FILES |
|
interfaces/configinterface.h |
|
interfaces/guiinterface.h |
|
interfaces/printinterface.h |
|
interfaces/saveinterface.h |
|
interfaces/viewerinterface.h |
|
DESTINATION ${KDE_INSTALL_INCLUDEDIR}/okular/interfaces COMPONENT Devel) |
|
|
|
ki18n_wrap_ui(okularcore_SRCS |
|
core/chooseenginewidget.ui |
|
) |
|
|
|
kconfig_add_kcfg_files(okularcore_SRCS GENERATE_MOC conf/settings_core.kcfgc) |
|
|
|
add_library(okularcore SHARED ${okularcore_SRCS}) |
|
generate_export_header(okularcore BASE_NAME okularcore EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/core/okularcore_export.h") |
|
|
|
if (ANDROID) |
|
set(fileName ${CMAKE_BINARY_DIR}/Okular5Core-android-dependencies.xml) |
|
file(WRITE "${fileName}" "<rules><dependencies><lib name='Okular5Core'><depends>\n" |
|
"<bundled file='${KDE_INSTALL_PLUGINDIR}/okular/generators' />\n" |
|
"</depends></lib></dependencies></rules>\n") |
|
install(FILES ${fileName} DESTINATION ${KDE_INSTALL_LIBDIR}) |
|
endif() |
|
|
|
|
|
# Special handling for linking okularcore on OSX/Apple |
|
IF(APPLE) |
|
SET(OKULAR_IOKIT "-framework IOKit" CACHE STRING "Apple IOKit framework") |
|
ENDIF(APPLE) |
|
|
|
# Extra library needed by imported synctex code on Windows |
|
if(WIN32) |
|
set(SHLWAPI shlwapi) |
|
endif(WIN32) |
|
|
|
target_link_libraries(okularcore |
|
PRIVATE |
|
${OKULAR_IOKIT} |
|
${SHLWAPI} |
|
KF5::Archive |
|
KF5::KIOCore |
|
KF5::KIOWidgets |
|
KF5::I18n |
|
KF5::ThreadWeaver |
|
KF5::Bookmarks |
|
Phonon::phonon4qt5 |
|
Qt5::Svg |
|
${MATH_LIB} |
|
ZLIB::ZLIB |
|
PUBLIC # these are included from the installed headers |
|
KF5::CoreAddons |
|
KF5::XmlGui |
|
KF5::ConfigGui |
|
Qt5::PrintSupport |
|
Qt5::Widgets |
|
Qt5::CorePrivate |
|
) |
|
|
|
|
|
if (KF5Wallet_FOUND) |
|
target_link_libraries(okularcore PRIVATE KF5::Wallet) |
|
endif() |
|
if (KF5JS_FOUND) |
|
target_sources(okularcore PRIVATE |
|
core/script/executor_kjs.cpp |
|
core/script/kjs_app.cpp |
|
core/script/kjs_console.cpp |
|
core/script/kjs_data.cpp |
|
core/script/kjs_display.cpp |
|
core/script/kjs_document.cpp |
|
core/script/kjs_field.cpp |
|
core/script/kjs_fullscreen.cpp |
|
core/script/kjs_field.cpp |
|
core/script/kjs_spell.cpp |
|
core/script/kjs_util.cpp |
|
core/script/kjs_event.cpp |
|
core/script/kjs_ocg.cpp |
|
) |
|
target_link_libraries(okularcore PRIVATE KF5::JS KF5::JSApi) |
|
endif() |
|
|
|
set_target_properties(okularcore PROPERTIES VERSION 10.0.0 SOVERSION 10 OUTPUT_NAME Okular5Core EXPORT_NAME Core) |
|
|
|
install(TARGETS okularcore EXPORT Okular5Targets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) |
|
|
|
install(FILES conf/okular.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) |
|
install(FILES conf/okular_core.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) |
|
install(FILES core/okularGenerator.desktop DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR}) |
|
|
|
if(BUILD_DESKTOP) |
|
# okularpart |
|
set(okularpart_SRCS |
|
gui/certificatemodel.cpp |
|
gui/debug_ui.cpp |
|
gui/guiutils.cpp |
|
gui/pagepainter.cpp |
|
gui/signatureguiutils.cpp |
|
gui/signaturemodel.cpp |
|
gui/tocmodel.cpp |
|
part/preferencesdialog.cpp |
|
part/dlgaccessibility.cpp |
|
part/dlgdebug.cpp |
|
part/dlgeditor.cpp |
|
part/dlggeneral.cpp |
|
part/dlgannotations.cpp |
|
part/dlgperformance.cpp |
|
part/dlgpresentation.cpp |
|
part/editannottooldialog.cpp |
|
part/editdrawingtooldialog.cpp |
|
part/widgetannottools.cpp |
|
part/widgetconfigurationtoolsbase.cpp |
|
part/widgetdrawingtools.cpp |
|
part/part.cpp |
|
part/extensions.cpp |
|
part/embeddedfilesdialog.cpp |
|
part/actionbar.cpp |
|
part/annotationactionhandler.cpp |
|
part/annotwindow.cpp |
|
part/annotationmodel.cpp |
|
part/annotationpopup.cpp |
|
part/annotationpropertiesdialog.cpp |
|
part/annotationproxymodels.cpp |
|
part/annotationtools.cpp |
|
part/annotationwidgets.cpp |
|
part/bookmarklist.cpp |
|
part/certificateviewer.cpp |
|
part/colormodemenu.cpp |
|
part/cursorwraphelper.cpp |
|
part/drawingtoolactions.cpp |
|
part/fileprinterpreview.cpp |
|
part/findbar.cpp |
|
part/formwidgets.cpp |
|
part/ktreeviewsearchline.cpp |
|
part/latexrenderer.cpp |
|
part/minibar.cpp |
|
part/okmenutitle.cpp |
|
part/pageitemdelegate.cpp |
|
part/pagesizelabel.cpp |
|
part/pageviewannotator.cpp |
|
part/pageviewmouseannotation.cpp |
|
part/pageview.cpp |
|
part/magnifierview.cpp |
|
part/pageviewutils.cpp |
|
part/presentationsearchbar.cpp |
|
part/presentationwidget.cpp |
|
part/propertiesdialog.cpp |
|
part/revisionviewer.cpp |
|
part/searchlineedit.cpp |
|
part/searchwidget.cpp |
|
part/sidebar.cpp |
|
part/side_reviews.cpp |
|
part/snapshottaker.cpp |
|
part/thumbnaillist.cpp |
|
part/toc.cpp |
|
part/toggleactionmenu.cpp |
|
part/videowidget.cpp |
|
part/layers.cpp |
|
part/signaturepartutils.cpp |
|
part/signaturepropertiesdialog.cpp |
|
part/signaturepanel.cpp |
|
) |
|
|
|
if (Qt5TextToSpeech_FOUND) |
|
set(okularpart_SRCS ${okularpart_SRCS} |
|
part/tts.cpp) |
|
endif() |
|
|
|
kconfig_add_kcfg_files(okularpart_SRCS GENERATE_MOC conf/settings.kcfgc) |
|
|
|
add_library(okularpart SHARED ${okularpart_SRCS}) |
|
generate_export_header(okularpart BASE_NAME okularpart) |
|
|
|
target_link_libraries(okularpart okularcore |
|
${MATH_LIB} |
|
Qt5::Svg |
|
Phonon::phonon4qt5 |
|
KF5::Archive |
|
KF5::Bookmarks |
|
KF5::I18n |
|
KF5::IconThemes |
|
KF5::ItemViews |
|
KF5::KIOCore |
|
KF5::KIOFileWidgets |
|
KF5::KIOWidgets |
|
KF5::Parts |
|
KF5::Solid |
|
KF5::WindowSystem |
|
KF5::TextWidgets |
|
) |
|
|
|
if(KF5Wallet_FOUND) |
|
target_link_libraries(okularpart KF5::Wallet) |
|
endif() |
|
|
|
if (KF5Purpose_FOUND) |
|
target_link_libraries(okularpart KF5::PurposeWidgets) |
|
endif() |
|
|
|
set_target_properties(okularpart PROPERTIES PREFIX "") |
|
|
|
if (Qt5TextToSpeech_FOUND) |
|
target_link_libraries(okularpart Qt5::TextToSpeech) |
|
endif() |
|
install(TARGETS okularpart DESTINATION ${KDE_INSTALL_PLUGINDIR}) |
|
endif() |
|
|
|
|
|
########### install files ############### |
|
|
|
install(FILES okular.upd DESTINATION ${KDE_INSTALL_KCONFUPDATEDIR}) |
|
|
|
install( FILES okular_part.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) |
|
install( FILES part/part.rc part/part-viewermode.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/okular ) |
|
|
|
install(FILES okular.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) |
|
|
|
ki18n_install(po) |
|
if(KF5DocTools_FOUND) |
|
kdoctools_install(po) |
|
endif() |
|
|
|
########### cmake files ################# |
|
|
|
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/Okular5") |
|
configure_package_config_file( |
|
"${CMAKE_CURRENT_SOURCE_DIR}/Okular5Config.cmake.in" |
|
"${CMAKE_CURRENT_BINARY_DIR}/Okular5Config.cmake" |
|
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} |
|
PATH_VARS INCLUDE_INSTALL_DIR CMAKE_INSTALL_PREFIX |
|
) |
|
|
|
install(FILES |
|
"${CMAKE_CURRENT_BINARY_DIR}/Okular5Config.cmake" |
|
"${CMAKE_CURRENT_BINARY_DIR}/Okular5ConfigVersion.cmake" |
|
DESTINATION "${CMAKECONFIG_INSTALL_DIR}" |
|
COMPONENT Devel |
|
) |
|
|
|
install(EXPORT Okular5Targets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE Okular5Targets.cmake NAMESPACE Okular::) |
|
|
|
install(FILES |
|
core/stamps.svg |
|
DESTINATION ${KDE_INSTALL_DATADIR}/okular/pics) |
|
|
|
########### summary ################# |
|
|
|
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) |
|
|
|
message("-- Building Desktop User Interface: ${BUILD_DESKTOP}") |
|
message("-- Building Mobile Interface: ${BUILD_MOBILE}") |
|
message("")
|
|
|