Warning, /graphics/okular/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 cmake_minimum_required(VERSION 3.22)
0002 
0003 # KDE Application Version, managed by release script
0004 set (RELEASE_SERVICE_VERSION_MAJOR "24")
0005 set (RELEASE_SERVICE_VERSION_MINOR "01")
0006 set (RELEASE_SERVICE_VERSION_MICRO "95")
0007 set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
0008 
0009 project(okular VERSION ${RELEASE_SERVICE_VERSION})
0010 
0011 set(QT_REQUIRED_VERSION "6.6.0") # Remember to update the QT_DEPRECATED_WARNINGS_SINCE below
0012 set(KF_REQUIRED_VERSION "5.240.0") # Remember to update the KF_DEPRECATED_WARNINGS_SINCE below
0013 
0014 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')")
0015 
0016 set(FORCE_NOT_REQUIRED_DEPENDENCIES "" CACHE STRING "List (semicolon-separated) of dependencies that will be downgraded from REQUIRED to RECOMMENDED")
0017 
0018 find_package(ECM ${KF_REQUIRED_VERSION} CONFIG REQUIRED)
0019 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
0020 
0021 include(ECMInstallIcons)
0022 include(ECMSetupVersion)
0023 include(ECMOptionalAddSubdirectory)
0024 include(GenerateExportHeader)
0025 include(FeatureSummary)
0026 include(ECMAddAppIcon)
0027 include(KDECompilerSettings NO_POLICY_SCOPE)
0028 include(KDEInstallDirs)
0029 include(KDECMakeSettings)
0030 include(ECMAddTests)
0031 include(ECMAddAppIcon)
0032 include(CMakePackageConfigHelpers)
0033 include(ECMSetupQtPluginMacroNames)
0034 
0035 if (ANDROID AND (FORCE_NOT_REQUIRED_DEPENDENCIES STREQUAL ""))
0036     set(FORCE_NOT_REQUIRED_DEPENDENCIES "KF6Wallet;KF6DocTools;Qt6Qml;TIFF;JPEG;LibSpectre;KExiv2Qt6;CHM;LibZip;DjVuLibre;EPub;Discount;")
0037 endif()
0038 
0039 function(set_okular_optional_package_properties _name _props)
0040     if(NOT "${_props}" STREQUAL "PROPERTIES")
0041         message(FATAL_ERROR "PROPERTIES keyword is missing in set_okular_optional_package_properties() call.")
0042     endif()
0043 
0044     set(options) # none
0045     set(oneValueArgs DESCRIPTION URL PURPOSE)
0046     set(multiValueArgs) # none
0047 
0048     CMAKE_PARSE_ARGUMENTS(_SPP "${options}" "${oneValueArgs}" "${multiValueArgs}"  ${ARGN})
0049 
0050     if(_SPP_UNPARSED_ARGUMENTS)
0051         message(FATAL_ERROR "Unknown keywords given to set_okular_optional_package_properties(): \"${_SPP_UNPARSED_ARGUMENTS}\"")
0052     endif()
0053 
0054     set(DEPENDENCY_TYPE "REQUIRED")
0055     if (${_name} IN_LIST FORCE_NOT_REQUIRED_DEPENDENCIES)
0056         set(DEPENDENCY_TYPE "RECOMMENDED")
0057     endif()
0058     set_package_properties(${_name} PROPERTIES
0059         TYPE ${DEPENDENCY_TYPE}
0060         DESCRIPTION ${_SPP_DESCRIPTION}
0061         URL ${_SPP_URL}
0062         PURPOSE "${_SPP_PURPOSE} You can make the dependency optional adding ${_name} to the FORCE_NOT_REQUIRED_DEPENDENCIES cmake option"
0063     )
0064 endfunction()
0065 
0066 if(OKULAR_UI STREQUAL "")
0067     if(ANDROID)
0068         set(OKULAR_UI "mobile")
0069     else()
0070         set(OKULAR_UI "desktop")
0071     endif()
0072 endif()
0073 
0074 if(OKULAR_UI STREQUAL "desktop" OR OKULAR_UI STREQUAL "both")
0075     set(BUILD_DESKTOP ON)
0076 else()
0077     set(BUILD_DESKTOP OFF)
0078 endif()
0079 if(OKULAR_UI STREQUAL "mobile" OR OKULAR_UI STREQUAL "both")
0080     set(BUILD_MOBILE ON)
0081 else()
0082     set(BUILD_MOBILE OFF)
0083 endif()
0084 
0085 # append the plugins from the install tree folder to the QT_PLUGIN_PATH
0086 if(UNIX)
0087     set(ENV{QT_PLUGIN_PATH} "$ENV{QT_PLUGIN_PATH}:${KDE_INSTALL_FULL_QTPLUGINDIR}")
0088 elseif(WIN32)
0089     set(ENV{QT_PLUGIN_PATH} "$ENV{QT_PLUGIN_PATH};${KDE_INSTALL_FULL_QTPLUGINDIR}")
0090 endif()
0091 
0092 set(CMAKE_CXX_STANDARD 17)
0093 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0094 set(CMAKE_CXX_EXTENSIONS OFF)
0095 
0096 ecm_setup_version(${PROJECT_VERSION}
0097                   VARIABLE_PREFIX OKULAR
0098                   VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/core/version.h"
0099                   PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/Okular6ConfigVersion.cmake")
0100 
0101 find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED COMPONENTS Core Test Widgets PrintSupport Svg Xml)
0102 
0103 ecm_setup_qtplugin_macro_names(
0104     JSON_ARG2
0105         "OKULAR_EXPORT_PLUGIN"
0106     CONFIG_CODE_VARIABLE
0107         PACKAGE_SETUP_AUTOMOC_VARIABLES
0108 )
0109 
0110 find_package(KF6 ${KF_REQUIRED_VERSION} REQUIRED COMPONENTS
0111     Archive
0112     Bookmarks
0113     Completion
0114     Config
0115     ConfigWidgets
0116     CoreAddons
0117     I18n
0118     KIO
0119     ThreadWeaver
0120     WindowSystem
0121     XmlGui
0122 )
0123 
0124 if (NOT WIN32)
0125     find_package(KF6Wallet ${KF_REQUIRED_VERSION})
0126     set_okular_optional_package_properties(KF6Wallet PROPERTIES
0127     PURPOSE "Required for document storing passwords in secure wallets.")
0128 endif()
0129 if(KF6Wallet_FOUND)
0130     set(HAVE_KWALLET 1)
0131 else()
0132     set(HAVE_KWALLET 0)
0133 endif()
0134 
0135 find_package(KF6DocTools ${KF_REQUIRED_VERSION})
0136 set_okular_optional_package_properties(KF6DocTools PROPERTIES
0137     PURPOSE "Required for compiling and installing the user documentation.")
0138 
0139 find_package(Qt6Qml)
0140 set_okular_optional_package_properties(Qt6Qml PROPERTIES
0141     PURPOSE "Required for supporting JavaScript in PDF documents")
0142 if(TARGET Qt6::Qml)
0143     set(HAVE_JS 1)
0144 else()
0145     set(HAVE_JS 0)
0146 endif()
0147 
0148 if (BUILD_DESKTOP)
0149     find_package(Qt6DBus)
0150     set_okular_optional_package_properties(Qt6DBus PROPERTIES
0151         PURPOSE "Required for interprocess communication, external open in same instance and various presentation related bits.")
0152     if(TARGET Qt6::DBus)
0153         set(HAVE_DBUS 1)
0154     else()
0155         set(HAVE_DBUS 0)
0156     endif()
0157     find_package(KF6 ${KF_REQUIRED_VERSION} REQUIRED COMPONENTS Parts Crash IconThemes TextWidgets)
0158 
0159     find_package(KF6Purpose)
0160     set_okular_optional_package_properties(KF6Purpose PROPERTIES
0161         DESCRIPTION "A framework for services and actions integration"
0162         PURPOSE "Required for enabling the share menu.")
0163     if (KF6Purpose_FOUND)
0164         set(HAVE_PURPOSE 1)
0165     else()
0166         set(HAVE_PURPOSE 0)
0167     endif()
0168 
0169     find_package(Qt6TextToSpeech ${QT_REQUIRED_VERSION} CONFIG)
0170     set_okular_optional_package_properties(Qt6TextToSpeech PROPERTIES
0171         PURPOSE "Enables speech features.")
0172     if (Qt6TextToSpeech_FOUND)
0173         set(HAVE_SPEECH 1)
0174     else()
0175         set(HAVE_SPEECH 0)
0176     endif()
0177 endif()
0178 
0179 if (BUILD_MOBILE)
0180     find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED COMPONENTS Qml Quick)
0181     find_package(KF6Kirigami2)
0182     set_package_properties(KF6Kirigami2 PROPERTIES
0183         DESCRIPTION "A QtQuick based components set"
0184         PURPOSE "Required at runtime by the mobile app"
0185         TYPE RUNTIME
0186     )
0187     find_package(KF6KirigamiAddons)
0188     set_package_properties(KF6KirigamiAddons PROPERTIES
0189         DESCRIPTION "A set of widgets for Kirigami along with  code to support them"
0190         PURPOSE "Required at runtime by the mobile app"
0191         TYPE RUNTIME
0192     )
0193 endif()
0194 
0195 if(NOT WIN32 AND NOT ANDROID AND NOT APPLE)
0196     find_package(Qt6Gui REQUIRED COMPONENTS Private)
0197     find_package(PlasmaActivities REQUIRED)
0198     set_package_properties("PlasmaActivities" PROPERTIES
0199         DESCRIPTION  "Activities interface library"
0200         URL "https://invent.kde.org/plasma/plasma-activities"
0201         PURPOSE "Required for Activities integration."
0202     )
0203     set(HAVE_X11 TRUE)
0204 else()
0205     set(HAVE_X11 FALSE)
0206 endif()
0207 find_package(Phonon4Qt6 CONFIG)
0208 set_okular_optional_package_properties(Phonon4Qt6 PROPERTIES
0209     PURPOSE "Required for documents with audio or video elements")
0210 if (Phonon4Qt6_FOUND)
0211     set(HAVE_PHONON 1)
0212 else()
0213     set(HAVE_PHONON 0)
0214 endif()
0215 
0216 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/modules)
0217 
0218 find_package(ZLIB REQUIRED)
0219 
0220 find_package(Poppler "22.02.0" COMPONENTS Qt6)
0221 set_okular_optional_package_properties(Poppler PROPERTIES
0222         PURPOSE "Support for PDF files in okular.")
0223 
0224 find_package(Freetype)
0225 set_okular_optional_package_properties(Freetype PROPERTIES
0226         DESCRIPTION  "A font rendering engine"
0227         URL "https://www.freetype.org"
0228         PURPOSE "Provides freetype font support in the okular DVI generator.")
0229 
0230 find_package(TIFF)
0231 set_okular_optional_package_properties(TIFF PROPERTIES
0232         DESCRIPTION  "A library for reading and writing TIFF formatted files,"
0233         URL "http://www.libtiff.org"
0234         PURPOSE "Support for TIFF files in okular.")
0235 
0236 find_package(JPEG)
0237 set_okular_optional_package_properties(JPEG PROPERTIES
0238         DESCRIPTION  "A library for reading and writing JPEG image files."
0239         URL "https://www.ijg.org"
0240         PURPOSE "Support for PalmDB documents in okular.")
0241 
0242 set(LIBSPECTRE_MINIMUM_VERSION "0.2")
0243 find_package(LibSpectre "${LIBSPECTRE_MINIMUM_VERSION}")
0244 set_okular_optional_package_properties(LibSpectre PROPERTIES
0245         DESCRIPTION  "A PostScript rendering library"
0246         URL "https://libspectre.freedesktop.org"
0247         PURPOSE "Support for PS files in okular.")
0248 
0249 find_package(KExiv2Qt6 CONFIG)
0250 set_okular_optional_package_properties(KExiv2Qt6 PROPERTIES
0251         DESCRIPTION  "Wrapper around Exiv2 library"
0252         URL "https://commits.kde.org/libkexiv2"
0253         PURPOSE "Support for exif rotation in image files.")
0254 
0255 if (FALSE ) # Investigate porting at some point
0256     find_package(CHM)
0257     set_okular_optional_package_properties(CHM PROPERTIES
0258             DESCRIPTION  "A library for dealing with Microsoft ITSS/CHM format files"
0259             URL "http://www.jedrea.com/chmlib"
0260             PURPOSE "Support CHM files in okular.")
0261 
0262 endif()
0263 
0264 find_package(LibZip)
0265 set_okular_optional_package_properties(LibZip PROPERTIES
0266         DESCRIPTION  "A library for reading, creating, and modifying zip archives"
0267         URL "https://libzip.org/"
0268         PURPOSE "Support CHM files in okular.")
0269 
0270 find_package(DjVuLibre "3.5.28")
0271 set_okular_optional_package_properties(DjVuLibre PROPERTIES
0272         DESCRIPTION  "A library for dealing with DjVu formatted files"
0273         URL "https://djvulibre.djvuzone.org"
0274         PURPOSE "Support for DjVu files in okular.")
0275 
0276 find_package(EPub)
0277 set_okular_optional_package_properties(EPub PROPERTIES
0278         DESCRIPTION  "A library for reading EPub documents"
0279         URL "http://sourceforge.net/projects/ebook-tools"
0280         PURPOSE "Support for EPub documents in Okular.")
0281 
0282 find_package(QMobipocket6 "2" CONFIG)
0283 set_okular_optional_package_properties(QMobiPocket6 PROPERTIES
0284         DESCRIPTION  "A library for reading Mobipocket documents"
0285         URL "https://commits.kde.org/kdegraphics-mobipocket"
0286         PURPOSE "Support for Mobipocket documents in Okular.")
0287 
0288 find_package(Discount)
0289 set_okular_optional_package_properties(Discount PROPERTIES
0290         DESCRIPTION "A library that gives you formatting functions suitable for marking down entire documents or lines of text"
0291         URL "https://www.pell.portland.or.us/~orc/Code/discount/"
0292         PURPOSE "Support for Markdown documents in Okular.")
0293 
0294 add_definitions(-DTRANSLATION_DOMAIN="okular")
0295 add_definitions(-DQT_DEPRECATED_WARNINGS_SINCE=0x060600)
0296 add_definitions(-DKF_DEPRECATED_WARNINGS_SINCE=0x05F000)
0297 
0298 include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${PHONON_INCLUDES} core/synctex ${CMAKE_BINARY_DIR}/core)
0299 
0300 option(BUILD_COVERAGE "Build the project with gcov support" OFF)
0301 
0302 if(BUILD_COVERAGE)
0303     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
0304     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov")
0305 endif()
0306 
0307 add_subdirectory( icons ) # an own directory for multi-size icons retrieved by KIconThemeLoader
0308 add_subdirectory( part )
0309 if(BUILD_DESKTOP)
0310     add_subdirectory( shell )
0311 endif()
0312 add_subdirectory( generators )
0313 
0314 if(BUILD_MOBILE)
0315     add_subdirectory( mobile )
0316 endif()
0317 
0318 if(BUILD_TESTING)
0319    add_subdirectory( autotests )
0320 endif()
0321 
0322 if(KF6DocTools_FOUND)
0323     add_subdirectory(doc)
0324 endif()
0325 
0326 include(OkularConfigureChecks.cmake)
0327 
0328 if(NOT WIN32)
0329  set(MATH_LIB m)
0330 else(NOT WIN32)
0331  set(MATH_LIB)
0332 endif(NOT WIN32)
0333 
0334 # okularcore
0335 
0336 set(okularcore_SRCS
0337    core/action.cpp
0338    core/annotations.cpp
0339    core/area.cpp
0340    core/audioplayer.cpp
0341    core/bookmarkmanager.cpp
0342    core/chooseenginedialog.cpp
0343    core/document.cpp
0344    core/documentcommands.cpp
0345    core/fontinfo.cpp
0346    core/form.cpp
0347    core/generator.cpp
0348    core/generator_p.cpp
0349    core/misc.cpp
0350    core/movie.cpp
0351    core/observer.cpp
0352    core/debug.cpp
0353    core/page.cpp
0354    core/pagecontroller.cpp
0355    core/pagesize.cpp
0356    core/pagetransition.cpp
0357    core/rotationjob.cpp
0358    core/scripter.cpp
0359    core/sound.cpp
0360    core/sourcereference.cpp
0361    core/textdocumentgenerator.cpp
0362    core/textdocumentsettings.cpp
0363    core/textpage.cpp
0364    core/tilesmanager.cpp
0365    core/utils.cpp
0366    core/view.cpp
0367    core/fileprinter.cpp
0368    core/printoptionswidget.cpp
0369    core/signatureutils.cpp
0370    core/script/event.cpp
0371    core/synctex/synctex_parser.c
0372    core/synctex/synctex_parser_utils.c
0373 )
0374 qt_add_resources(okularcore_SRCS
0375    core/script/builtin.qrc
0376 )
0377 
0378 ki18n_wrap_ui(okularcore_SRCS
0379    part/textdocumentsettings.ui
0380 )
0381 
0382 install( FILES
0383            core/action.h
0384            core/annotations.h
0385            core/area.h
0386            core/document.h
0387            core/fontinfo.h
0388            core/form.h
0389            core/generator.h
0390            core/global.h
0391            core/page.h
0392            core/pagesize.h
0393            core/pagetransition.h
0394            core/signatureutils.h
0395            core/sound.h
0396            core/sourcereference.h
0397            core/textdocumentgenerator.h
0398            core/textdocumentsettings.h
0399            core/textpage.h
0400            core/tile.h
0401            core/utils.h
0402            core/fileprinter.h
0403            core/printoptionswidget.h
0404            core/observer.h
0405            ${CMAKE_CURRENT_BINARY_DIR}/core/version.h
0406            ${CMAKE_CURRENT_BINARY_DIR}/core/okularcore_export.h
0407            ${CMAKE_CURRENT_BINARY_DIR}/settings_core.h
0408          DESTINATION ${KDE_INSTALL_INCLUDEDIR}/okular/core COMPONENT Devel)
0409 
0410 install( FILES
0411            interfaces/configinterface.h
0412            interfaces/guiinterface.h
0413            interfaces/printinterface.h
0414            interfaces/saveinterface.h
0415            interfaces/viewerinterface.h
0416          DESTINATION ${KDE_INSTALL_INCLUDEDIR}/okular/interfaces COMPONENT Devel)
0417 
0418 ki18n_wrap_ui(okularcore_SRCS
0419    core/chooseenginewidget.ui
0420 )
0421 
0422 kconfig_add_kcfg_files(okularcore_SRCS GENERATE_MOC conf/settings_core.kcfgc)
0423 
0424 add_library(okularcore SHARED ${okularcore_SRCS})
0425 generate_export_header(okularcore BASE_NAME okularcore EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/core/okularcore_export.h")
0426 target_include_directories(okularcore PUBLIC "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}>")
0427 
0428 if (ANDROID)
0429     set(fileName ${CMAKE_BINARY_DIR}/Okular5Core-android-dependencies.xml)
0430     file(WRITE "${fileName}" "<rules><dependencies><lib name='Okular5Core'><depends>\n"
0431                                 "<bundled file='${KDE_INSTALL_PLUGINDIR}/okular/generators' />\n"
0432                              "</depends></lib></dependencies></rules>\n")
0433     install(FILES ${fileName} DESTINATION ${KDE_INSTALL_LIBDIR})
0434 endif()
0435 
0436 
0437 # Special handling for linking okularcore on OSX/Apple
0438 IF(APPLE)
0439     SET(OKULAR_IOKIT "-framework IOKit" CACHE STRING "Apple IOKit framework")
0440 ENDIF(APPLE)
0441 
0442 # Extra library needed by imported synctex code on Windows
0443 if(WIN32)
0444     set(SHLWAPI shlwapi)
0445 endif(WIN32)
0446 
0447 target_link_libraries(okularcore
0448 PRIVATE
0449     ${OKULAR_IOKIT}
0450     ${SHLWAPI}
0451     KF6::Archive
0452     KF6::KIOCore
0453     KF6::KIOWidgets
0454     KF6::I18n
0455     KF6::ThreadWeaver
0456     KF6::BookmarksWidgets
0457     KF6::Bookmarks
0458     Qt6::Svg
0459     ${MATH_LIB}
0460     ZLIB::ZLIB
0461 PUBLIC  # these are included from the installed headers
0462     KF6::CoreAddons
0463     KF6::XmlGui
0464     KF6::ConfigGui
0465     Qt6::PrintSupport
0466     Qt6::Widgets
0467 )
0468 if (Phonon4Qt6_FOUND)
0469     target_link_libraries(okularcore PRIVATE Phonon::phonon4qt6)
0470 endif()
0471 
0472 
0473 if (KF6Wallet_FOUND)
0474     target_link_libraries(okularcore PRIVATE KF6::Wallet)
0475 endif()
0476 if (TARGET Qt6::Qml)
0477     target_sources(okularcore PRIVATE
0478             core/script/executor_js.cpp
0479             core/script/js_app.cpp
0480             core/script/js_console.cpp
0481             core/script/js_data.cpp
0482             core/script/js_display.cpp
0483             core/script/js_document.cpp
0484             core/script/js_field.cpp
0485             core/script/js_fullscreen.cpp
0486             core/script/js_field.cpp
0487             core/script/js_spell.cpp
0488             core/script/js_util.cpp
0489             core/script/js_event.cpp
0490             core/script/js_ocg.cpp
0491     )
0492     target_link_libraries(okularcore PRIVATE Qt6::Qml)
0493 endif()
0494 
0495 set_target_properties(okularcore PROPERTIES VERSION 1.0.0 SOVERSION 1 OUTPUT_NAME Okular6Core EXPORT_NAME Core)
0496 
0497 install(TARGETS okularcore EXPORT Okular6Targets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0498 
0499 install(FILES conf/okular.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})
0500 install(FILES conf/okular_core.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})
0501 
0502 if(BUILD_DESKTOP)
0503   # okularpart
0504   set(okularpart_SRCS
0505     gui/certificatemodel.cpp
0506     gui/debug_ui.cpp
0507     gui/guiutils.cpp
0508     gui/pagepainter.cpp
0509     gui/signatureguiutils.cpp
0510     gui/signaturemodel.cpp
0511     gui/tocmodel.cpp
0512     part/preferencesdialog.cpp
0513     part/dlgaccessibility.cpp
0514     part/dlgdebug.cpp
0515     part/dlgeditor.cpp
0516     part/dlggeneral.cpp
0517     part/dlgannotations.cpp
0518     part/dlgperformance.cpp
0519     part/dlgpresentation.cpp
0520     part/editannottooldialog.cpp
0521     part/editdrawingtooldialog.cpp
0522     part/widgetannottools.cpp
0523     part/widgetconfigurationtoolsbase.cpp
0524     part/widgetdrawingtools.cpp
0525     part/part.cpp
0526     part/extensions.cpp
0527     part/embeddedfilesdialog.cpp
0528     part/actionbar.cpp
0529     part/annotationactionhandler.cpp
0530     part/annotwindow.cpp
0531     part/annotationmodel.cpp
0532     part/annotationpopup.cpp
0533     part/annotationpropertiesdialog.cpp
0534     part/annotationproxymodels.cpp
0535     part/annotationtools.cpp
0536     part/annotationwidgets.cpp
0537     part/bookmarklist.cpp
0538     part/certificateviewer.cpp
0539     part/colormodemenu.cpp
0540     part/cursorwraphelper.cpp
0541     part/drawingtoolactions.cpp
0542     part/fileprinterpreview.cpp
0543     part/findbar.cpp
0544     part/formwidgets.cpp
0545     part/ktreeviewsearchline.cpp
0546     part/latexrenderer.cpp
0547     part/minibar.cpp
0548     part/okmenutitle.cpp
0549     part/pageitemdelegate.cpp
0550     part/pagesizelabel.cpp
0551     part/pageviewannotator.cpp
0552     part/pageviewmouseannotation.cpp
0553     part/pageview.cpp
0554     part/magnifierview.cpp
0555     part/pageviewutils.cpp
0556     part/presentationsearchbar.cpp
0557     part/presentationwidget.cpp
0558     part/propertiesdialog.cpp
0559     part/revisionviewer.cpp
0560     part/searchlineedit.cpp
0561     part/searchwidget.cpp
0562     part/sidebar.cpp
0563     part/side_reviews.cpp
0564     part/snapshottaker.cpp
0565     part/thumbnaillist.cpp
0566     part/toc.cpp
0567     part/toggleactionmenu.cpp
0568     part/videowidget.cpp
0569     part/layers.cpp
0570     part/signaturepartutils.cpp
0571     part/signaturepropertiesdialog.cpp
0572     part/signaturepanel.cpp
0573 
0574     part/part.qrc
0575   )
0576   ki18n_wrap_ui(okularpart_SRCS part/selectcertificatedialog.ui)
0577 
0578 if (Qt6TextToSpeech_FOUND)
0579    set(okularpart_SRCS ${okularpart_SRCS}
0580       part/tts.cpp)
0581 endif()
0582 
0583 kconfig_add_kcfg_files(okularpart_SRCS GENERATE_MOC conf/settings.kcfgc)
0584 
0585 add_library(okularpart SHARED ${okularpart_SRCS})
0586 generate_export_header(okularpart BASE_NAME okularpart)
0587 
0588 target_link_libraries(okularpart okularcore
0589     ${MATH_LIB}
0590     Qt6::Svg
0591     KF6::Archive
0592     KF6::Bookmarks
0593     KF6::I18n
0594     KF6::IconThemes
0595     KF6::ItemViews
0596     KF6::KIOCore
0597     KF6::KIOWidgets
0598     KF6::Parts
0599     KF6::WindowSystem
0600     KF6::TextWidgets
0601 )
0602 if (TARGET Qt6::DBus)
0603     target_link_libraries(okularpart Qt6::DBus)
0604 endif()
0605 if (Phonon4Qt6_FOUND)
0606    target_link_libraries(okularpart Phonon::phonon4qt6)
0607 endif()
0608 
0609 if(KF6Wallet_FOUND)
0610     target_link_libraries(okularpart KF6::Wallet)
0611 endif()
0612 
0613 if (KF6Purpose_FOUND)
0614     target_link_libraries(okularpart KF6::PurposeWidgets)
0615 endif()
0616 
0617 set_target_properties(okularpart PROPERTIES PREFIX "")
0618 set_target_properties(okularpart PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/kf6/parts)
0619 
0620 if (Qt6TextToSpeech_FOUND)
0621    target_link_libraries(okularpart Qt6::TextToSpeech)
0622 endif()
0623 
0624 #instead install the part to this path so it can be found
0625 install(TARGETS okularpart DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf6/parts/ )
0626 
0627 endif()# End of BUILD_DESKTOP if
0628 
0629 
0630 ########### install files ###############
0631 
0632 install(FILES okular.upd DESTINATION ${KDE_INSTALL_KCONFUPDATEDIR})
0633 install(FILES okular.categories  DESTINATION  ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
0634 
0635 ki18n_install(po)
0636 if(KF6DocTools_FOUND)
0637     kdoctools_install(po)
0638 endif()
0639 
0640 ########### cmake files #################
0641 
0642 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/Okular6")
0643 configure_package_config_file(
0644   "${CMAKE_CURRENT_SOURCE_DIR}/Okular6Config.cmake.in"
0645   "${CMAKE_CURRENT_BINARY_DIR}/Okular6Config.cmake"
0646   INSTALL_DESTINATION  ${CMAKECONFIG_INSTALL_DIR}
0647   PATH_VARS  KDE_INSTALL_INCLUDEDIR CMAKE_INSTALL_PREFIX
0648 )
0649 
0650 install(FILES
0651   "${CMAKE_CURRENT_BINARY_DIR}/Okular6Config.cmake"
0652   "${CMAKE_CURRENT_BINARY_DIR}/Okular6ConfigVersion.cmake"
0653   DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0654   COMPONENT Devel
0655 )
0656 
0657 install(EXPORT Okular6Targets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE Okular6Targets.cmake NAMESPACE Okular::)
0658 
0659 install(FILES
0660    core/stamps.svg
0661    DESTINATION ${KDE_INSTALL_DATADIR}/okular/pics)
0662 
0663 ########### summary #################
0664 
0665 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
0666 
0667 message("-- Building Desktop User Interface: ${BUILD_DESKTOP}")
0668 message("-- Building Mobile Interface: ${BUILD_MOBILE}")
0669 message("")