project(okular)
-find_package(KDE4 REQUIRED)
-include(KDE4Defaults)
-include(MacroLibrary)
-include(MacroOptionalAddSubdirectory)
+if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
+ include(GenerateExportHeader)
+ include(FeatureSummary)
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake/modules)
+ find_package(KDE4 4.22.0 REQUIRED)
+ include(KDE4Defaults)
+ include_directories(${KDE4_INCLUDES})
+ add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
+endif()
-macro_optional_find_package(QImageBlitz)
-macro_log_feature(QIMAGEBLITZ_FOUND "QImageBlitz" "An image effects library" "http://sourceforge.net/projects/qimageblitz" TRUE "kdesupport" "Required to build Okular.")
-
-macro_optional_find_package(LibKScreen)
-macro_log_feature(LibKScreen_FOUND "LibKScreen" "KDE screen management library" "https://projects.kde.org/projects/kdereview/libkscreen" FALSE "1.0.2" "DPI detection support")
-
-add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
-add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
- ${KDE4_INCLUDES}
- ${QIMAGEBLITZ_INCLUDES}
- ${LibKScreen_INCLUDE_DIR}
)
-add_subdirectory( active )
+kde4_optional_find_package(Poppler)
+set_package_properties(Poppler PROPERTIES
+ DESCRIPTION "A PDF rendering library"
+ URL "https://poppler.freedesktop.org"
+ PURPOSE "Support for PDF files in Okular"
+)
+
+kde4_optional_find_package(LibSpectre 0.2)
+set_package_properties(LibSpectre PROPERTIES
+ DESCRIPTION "A PostScript rendering library"
+ URL "http://libspectre.freedesktop.org/wiki/"
+ PURPOSE "Support for PS files in Okular"
+)
+
+kde4_optional_find_package(DjVuLibre 3.5.17)
+set_package_properties(DjVuLibre PROPERTIES
+ DESCRIPTION "A library for dealing with DjVu formatted files"
+ URL "http://djvulibre.djvuzone.org"
+ PURPOSE "Support for DjVu files in Okular"
+)
+
+kde4_optional_find_package(Freetype)
+set_package_properties(Freetype PROPERTIES
+ DESCRIPTION "A font rendering engine"
+ URL "http://www.freetype.org"
+ PURPOSE "Provides freetype font support in the Okular DVI generator"
+)
+
+kde4_optional_find_package(EPub)
+set_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"
+)
+
+kde4_optional_find_package(OpenSSL)
+set_package_properties(OpenSSL PROPERTIES
+ DESCRIPTION "Robust, commercial-grade, full-featured toolkit for general-purpose cryptography and secure communication"
+ URL "https://www.openssl.org/"
+ PURPOSE "Support encrypted Open Document in Okular"
+)
+
+find_program(GHOSTSCRIPT_EXECUTABLE NAMES gs)
+add_feature_info(okular_gs
+ GHOSTSCRIPT_EXECUTABLE
+ "PostScript support in Okular"
+)
+
+find_program(PS2PDF_EXECUTABLE NAMES ps2pdf)
+add_feature_info(okular_ps2pdf
+ PS2PDF_EXECUTABLE
+ "PostScript support in Okular"
+)
+
+find_program(LATEX_EXECUTABLE NAMES latex)
+add_feature_info(okular_latex
+ LATEX_EXECUTABLE
+ "LaTeX support in Okular"
+)
+
+find_program(KPSEWHICH_EXECUTABLE NAMES kpsewhich)
+add_feature_info(okular_kpsewhich
+ KPSEWHICH_EXECUTABLE
+ "DVI support in Okular"
+)
+
+find_program(DVIPNG_EXECUTABLE NAMES dvipng)
+add_feature_info(okular_dvipng
+ DVIPNG_EXECUTABLE
+ "DVI support in Okular"
+)
+
+option(
+ OKULAR_FORCE_DRM
+ "Forces okular to check for DRM to decide if you can copy/print protected pdf. (default=no)"
+ OFF
+)
+kde4_bool_to_01(OKULAR_FORCE_DRM _OKULAR_FORCE_DRM)
+
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/config-okular.h.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/config-okular.h
+)
+
add_subdirectory( ui )
add_subdirectory( shell )
add_subdirectory( generators )
-add_subdirectory( tests )
-include(OkularConfigureChecks.cmake)
-include(MacroWriteBasicCMakeVersionFile)
+if(ENABLE_TESTING)
+ add_subdirectory( tests )
+endif()
-if(NOT WIN32)
- set(MATH_LIB m)
-else(NOT WIN32)
- set(MATH_LIB)
-endif(NOT WIN32)
+set(MATH_LIB m)
# 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/page.cpp
- core/pagecontroller.cpp
- core/pagesize.cpp
- core/pagetransition.cpp
- core/rotationjob.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
-)
-
-kde4_add_ui_files(okularcore_SRCS
- conf/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/okular_export.h
- core/page.h
- core/pagesize.h
- core/pagetransition.h
- core/sound.h
- core/sourcereference.h
- core/textdocumentgenerator.h
- core/textdocumentsettings.h
- core/textpage.h
- core/tile.h
- core/utils.h
- core/version.h
- core/fileprinter.h
- core/observer.h
- ${CMAKE_CURRENT_BINARY_DIR}/settings_core.h
- DESTINATION ${INCLUDE_INSTALL_DIR}/okular/core COMPONENT Devel)
-
-install( FILES
- interfaces/configinterface.h
- interfaces/guiinterface.h
- interfaces/printinterface.h
- interfaces/saveinterface.h
- interfaces/viewerinterface.h
- DESTINATION ${INCLUDE_INSTALL_DIR}/okular/interfaces COMPONENT Devel)
-
-kde4_add_ui_files(okularcore_SRCS
- core/chooseenginewidget.ui
+ 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/page.cpp
+ core/pagecontroller.cpp
+ core/pagesize.cpp
+ core/pagetransition.cpp
+ core/rotationjob.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/chooseenginewidget.ui
+ core/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/sound.h
+ core/sourcereference.h
+ core/textdocumentgenerator.h
+ core/textdocumentsettings.h
+ core/textpage.h
+ core/tile.h
+ core/utils.h
+ core/version.h
+ core/fileprinter.h
+ core/observer.h
+ ${CMAKE_CURRENT_BINARY_DIR}/settings_core.h
+ ${CMAKE_CURRENT_BINARY_DIR}/okular_export.h
+ DESTINATION ${KDE4_INCLUDE_INSTALL_DIR}/okular/core
+ COMPONENT Devel
+)
+
+install(
+ FILES
+ interfaces/configinterface.h
+ interfaces/guiinterface.h
+ interfaces/printinterface.h
+ interfaces/saveinterface.h
+ interfaces/viewerinterface.h
+ DESTINATION ${KDE4_INCLUDE_INSTALL_DIR}/okular/interfaces
+ COMPONENT Devel
)
kde4_add_kcfg_files(okularcore_SRCS ${PROJECT_SOURCE_DIR}/conf/settings_core.kcfgc )
-kde4_add_library(okularcore SHARED ${okularcore_SRCS})
+add_library(okularcore SHARED ${okularcore_SRCS})
-target_link_libraries(okularcore ${KDE4_KIO_LIBS} ${KDE4_PHONON_LIBRARY} ${MATH_LIB} ${KDE4_THREADWEAVER_LIBRARY} )
+target_link_libraries(okularcore
+ ${KDE4_KIO_LIBS}
+ ${KDE4_KARCHIVE_LIBS}
+ ${MATH_LIB}
+ KDE4::kmediaplayer
+)
-if(LibKScreen_FOUND)
- target_link_libraries(okularcore ${LibKScreen_LIBRARY})
-endif(LibKScreen_FOUND)
+set_target_properties(okularcore PROPERTIES
+ VERSION ${GENERIC_LIB_VERSION}
+ SOVERSION ${GENERIC_LIB_SOVERSION}
+)
-set_target_properties(okularcore PROPERTIES VERSION 5.0.0 SOVERSION 5 )
+generate_export_header(okularcore BASE_NAME okular)
install(TARGETS okularcore ${INSTALL_TARGETS_DEFAULT_ARGS} )
-install(FILES conf/okular.kcfg DESTINATION ${KCFG_INSTALL_DIR})
-install(FILES conf/okular_core.kcfg DESTINATION ${KCFG_INSTALL_DIR})
-install(FILES core/okularGenerator.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
+install(FILES conf/okular.kcfg DESTINATION ${KDE4_KCFG_INSTALL_DIR})
+install(FILES conf/okular_core.kcfg DESTINATION ${KDE4_KCFG_INSTALL_DIR})
+install(FILES core/okularGenerator.desktop DESTINATION ${KDE4_SERVICETYPES_INSTALL_DIR})
# okularpart
set(okularpart_SRCS
- part.cpp
- extensions.cpp
- conf/preferencesdialog.cpp
- conf/dlgaccessibility.cpp
- conf/dlgdebug.cpp
- conf/dlgeditor.cpp
- conf/dlggeneral.cpp
- conf/dlgannotations.cpp
- conf/dlgperformance.cpp
- conf/dlgpresentation.cpp
- conf/widgetannottools.cpp
- ui/embeddedfilesdialog.cpp
- ui/annotwindow.cpp
- ui/annotationmodel.cpp
- ui/annotationpopup.cpp
- ui/annotationpropertiesdialog.cpp
- ui/annotationproxymodels.cpp
- ui/annotationtools.cpp
- ui/annotationwidgets.cpp
- ui/bookmarklist.cpp
- ui/fileprinterpreview.cpp
- ui/findbar.cpp
- ui/formwidgets.cpp
- ui/guiutils.cpp
- ui/ktreeviewsearchline.cpp
- ui/latexrenderer.cpp
- ui/minibar.cpp
- ui/pageitemdelegate.cpp
- ui/pagepainter.cpp
- ui/pagesizelabel.cpp
- ui/pageviewannotator.cpp
- ui/pageview.cpp
- ui/magnifierview.cpp
- ui/pageviewutils.cpp
- ui/presentationsearchbar.cpp
- ui/presentationwidget.cpp
- ui/propertiesdialog.cpp
- ui/searchlineedit.cpp
- ui/searchwidget.cpp
- ui/sidebar.cpp
- ui/side_reviews.cpp
- ui/snapshottaker.cpp
- ui/thumbnaillist.cpp
- ui/toc.cpp
- ui/tocmodel.cpp
- ui/toolaction.cpp
- ui/tts.cpp
- ui/videowidget.cpp
-)
-
-kde4_add_ui_files(okularpart_SRCS
- conf/dlgaccessibilitybase.ui
- conf/dlgeditorbase.ui
- conf/dlggeneralbase.ui
- conf/dlgannotationsbase.ui
- conf/dlgperformancebase.ui
- conf/dlgpresentationbase.ui
+ part.cpp
+ extensions.cpp
+ conf/preferencesdialog.cpp
+ conf/dlgaccessibility.cpp
+ conf/dlgdebug.cpp
+ conf/dlgeditor.cpp
+ conf/dlggeneral.cpp
+ conf/dlgannotations.cpp
+ conf/dlgperformance.cpp
+ conf/dlgpresentation.cpp
+ conf/widgetannottools.cpp
+ ui/embeddedfilesdialog.cpp
+ ui/annotwindow.cpp
+ ui/annotationmodel.cpp
+ ui/annotationpopup.cpp
+ ui/annotationpropertiesdialog.cpp
+ ui/annotationproxymodels.cpp
+ ui/annotationtools.cpp
+ ui/annotationwidgets.cpp
+ ui/bookmarklist.cpp
+ ui/findbar.cpp
+ ui/formwidgets.cpp
+ ui/guiutils.cpp
+ ui/ktreeviewsearchline.cpp
+ ui/latexrenderer.cpp
+ ui/minibar.cpp
+ ui/pageitemdelegate.cpp
+ ui/pagepainter.cpp
+ ui/pagesizelabel.cpp
+ ui/pageviewannotator.cpp
+ ui/pageview.cpp
+ ui/magnifierview.cpp
+ ui/pageviewutils.cpp
+ ui/presentationsearchbar.cpp
+ ui/presentationwidget.cpp
+ ui/propertiesdialog.cpp
+ ui/searchlineedit.cpp
+ ui/searchwidget.cpp
+ ui/sidebar.cpp
+ ui/side_reviews.cpp
+ ui/snapshottaker.cpp
+ ui/thumbnaillist.cpp
+ ui/toc.cpp
+ ui/tocmodel.cpp
+ ui/toolaction.cpp
+ ui/tts.cpp
+ ui/videowidget.cpp
+ conf/dlgaccessibilitybase.ui
+ conf/dlgeditorbase.ui
+ conf/dlggeneralbase.ui
+ conf/dlgannotationsbase.ui
+ conf/dlgperformancebase.ui
+ conf/dlgpresentationbase.ui
)
kde4_add_kcfg_files(okularpart_SRCS ${PROJECT_SOURCE_DIR}/conf/settings.kcfgc )
-qt4_add_dbus_interfaces(okularpart_SRCS ${KDE4_DBUS_INTERFACES_DIR}/org.kde.KSpeech.xml)
-
-kde4_add_plugin(okularpart SHARED ${okularpart_SRCS})
+kde4_add_plugin(okularpart ${okularpart_SRCS})
+
+target_link_libraries(okularpart
+ ${KDE4_KPARTS_LIBS}
+ ${KDE4_KPASSWDSTORE_LIBS}
+ ${KDE4_KSPEECH_LIBS}
+ ${KDE4_KARCHIVE_LIBS}
+ ${QT_QTGUI_LIBRARY}
+ ${QT_QTDBUS_LIBRARY}
+ ${MATH_LIB}
+ okularcore
+)
-target_link_libraries(okularpart okularcore ${KDE4_KPARTS_LIBS} ${KDE4_KPRINTUTILS_LIBS} ${MATH_LIB} ${QIMAGEBLITZ_LIBRARIES} ${KDE4_PHONON_LIBRARY} ${KDE4_SOLID_LIBRARY})
+generate_export_header(okularpart)
-install(TARGETS okularpart DESTINATION ${PLUGIN_INSTALL_DIR})
+install(TARGETS okularpart DESTINATION ${KDE4_PLUGIN_INSTALL_DIR})
########### install files ###############
-install(FILES okular.upd DESTINATION ${DATA_INSTALL_DIR}/kconf_update)
-
-install( FILES okular_part.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
-install( FILES part.rc part-viewermode.rc DESTINATION ${DATA_INSTALL_DIR}/okular )
-
-########### cmake files #################
-
-macro_write_basic_cmake_version_file(${CMAKE_CURRENT_BINARY_DIR}/OkularConfigVersion.cmake 0 11 80)
-
-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/OkularConfig.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/OkularConfigVersion.cmake
- DESTINATION ${LIB_INSTALL_DIR}/cmake/Okular )
-
-macro_display_feature_log()
+install(FILES okular_part.desktop DESTINATION ${KDE4_SERVICES_INSTALL_DIR})
+install(FILES part.rc part-viewermode.rc DESTINATION ${KDE4_DATA_INSTALL_DIR}/okular)
+if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
+ feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
+endif()