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

0001 project(gwenviewlib)
0002 
0003 add_definitions(-DTRANSLATION_DOMAIN="gwenview")
0004 
0005 set(LIBGWENVIEW_VERSION "4.97.0")
0006 
0007 if (${JPEG_VERSION} LESS 80)
0008     set(GV_JPEG_DIR libjpeg-62)
0009 endif()
0010 
0011 if (${JPEG_VERSION} EQUAL 80)
0012     set(GV_JPEG_DIR libjpeg-80)
0013 endif()
0014 
0015 if (${JPEG_VERSION} EQUAL 90)
0016     set(GV_JPEG_DIR libjpeg-90)
0017 endif()
0018 
0019 if ("${GV_JPEG_DIR}" STREQUAL "")
0020     message(FATAL_ERROR "Unknown libjpeg version: ${jpeglib_version}")
0021 endif()
0022 
0023 message(STATUS "libjpeg version: ${JPEG_VERSION}")
0024 
0025 add_definitions(-Dlibjpeg_EXPORTS)
0026 include_directories(
0027     ${CMAKE_CURRENT_SOURCE_DIR}/${GV_JPEG_DIR}
0028     ${CMAKE_CURRENT_SOURCE_DIR}/..
0029     ${CMAKE_CURRENT_BINARY_DIR}
0030     )
0031 
0032 if(HAVE_FITS)
0033     include_directories(
0034         ${CFITSIO_INCLUDE_DIR}
0035         )
0036 endif()
0037 
0038 # For config-gwenview.h
0039 include_directories(
0040     ${CMAKE_CURRENT_BINARY_DIR}/..
0041     )
0042 
0043 set(gwenviewlib_SRCS
0044     bcg/bcgimageoperation.cpp
0045     bcg/bcgtool.cpp
0046     bcg/bcgwidget.cpp
0047     bcg/imageutils.cpp
0048     cms/iccjpeg.c
0049     cms/cmsprofile.cpp
0050     cms/cmsprofile_png.cpp
0051     contextmanager.cpp
0052     crop/cropwidget.cpp
0053     crop/cropimageoperation.cpp
0054     crop/croptool.cpp
0055     document/abstractdocumentimpl.cpp
0056     document/documentjob.cpp
0057     document/animateddocumentloadedimpl.cpp
0058     document/document.cpp
0059     document/documentfactory.cpp
0060     document/documentloadedimpl.cpp
0061     document/emptydocumentimpl.cpp
0062     document/jpegdocumentloadedimpl.cpp
0063     document/loadingdocumentimpl.cpp
0064     document/loadingjob.cpp
0065     document/savejob.cpp
0066     document/svgdocumentloadedimpl.cpp
0067     document/videodocumentloadedimpl.cpp
0068     documentview/abstractdocumentviewadapter.cpp
0069     documentview/abstractimageview.cpp
0070     documentview/abstractrasterimageviewtool.cpp
0071     documentview/alphabackgrounditem.cpp
0072     documentview/birdeyeview.cpp
0073     documentview/documentview.cpp
0074     documentview/documentviewcontroller.cpp
0075     documentview/documentviewsynchronizer.cpp
0076     documentview/loadingindicator.cpp
0077     documentview/messageviewadapter.cpp
0078     documentview/rasterimageview.cpp
0079     documentview/rasterimageviewadapter.cpp
0080     documentview/rasterimageitem.cpp
0081     documentview/svgviewadapter.cpp
0082     documentview/videoviewadapter.cpp
0083     about.cpp
0084     abstractimageoperation.cpp
0085     disabledactionshortcutmonitor.cpp
0086     documentonlyproxymodel.cpp
0087     documentview/documentviewcontainer.cpp
0088     binder.cpp
0089     eventwatcher.cpp
0090     historymodel.cpp
0091     recentfilesmodel.cpp
0092     archiveutils.cpp
0093     datewidget.cpp
0094     decoratedtag/decoratedtag.cpp
0095     exiv2imageloader.cpp
0096     flowlayout.cpp
0097     fullscreenbar.cpp
0098     hud/hudbutton.cpp
0099     hud/hudbuttonbox.cpp
0100     hud/hudcountdown.cpp
0101     hud/hudlabel.cpp
0102     hud/hudmessagebubble.cpp
0103     hud/hudslider.cpp
0104     hud/hudtheme.cpp
0105     hud/hudwidget.cpp
0106     graphicswidgetfloater.cpp
0107     imagemetainfomodel.cpp
0108     imageutils.cpp
0109     invisiblebuttongroup.cpp
0110     iodevicejpegsourcemanager.cpp
0111     jpegcontent.cpp
0112     kindproxymodel.cpp
0113     semanticinfo/sorteddirmodel.cpp
0114     memoryutils.cpp
0115     mimetypeutils.cpp
0116     paintutils.cpp
0117     placetreemodel.cpp
0118     preferredimagemetainfomodel.cpp
0119     print/printhelper.cpp
0120     print/printoptionspage.cpp
0121     recursivedirmodel.cpp
0122     shadowfilter.cpp
0123     slidecontainer.cpp
0124     slideshow.cpp
0125     statusbartoolbutton.cpp
0126     stylesheetutils.cpp
0127     redeyereduction/redeyereductionimageoperation.cpp
0128     redeyereduction/redeyereductiontool.cpp
0129     resize/resizeimageoperation.cpp
0130     resize/resizeimagedialog.cpp
0131     thumbnailprovider/thumbnailgenerator.cpp
0132     thumbnailprovider/thumbnailprovider.cpp
0133     thumbnailprovider/thumbnailwriter.cpp
0134     thumbnailview/abstractthumbnailviewhelper.cpp
0135     thumbnailview/abstractdocumentinfoprovider.cpp
0136     thumbnailview/dragpixmapgenerator.cpp
0137     thumbnailview/itemeditor.cpp
0138     thumbnailview/previewitemdelegate.cpp
0139     thumbnailview/thumbnailbarview.cpp
0140     thumbnailview/thumbnailslider.cpp
0141     thumbnailview/thumbnailview.cpp
0142     thumbnailview/tooltipwidget.cpp
0143     timeutils.cpp
0144     transformimageoperation.cpp
0145     urlutils.cpp
0146     widgetfloater.cpp
0147     zoomcombobox/zoomcombobox.cpp
0148     zoomslider.cpp
0149     zoomwidget.cpp
0150     scrollerutils.cpp
0151     touch/touch.cpp
0152     touch/tapholdandmoving.cpp
0153     touch/twofingerpan.cpp
0154     touch/oneandtwofingerswipe.cpp
0155     touch/doubletap.cpp
0156     touch/twofingertap.cpp
0157     touch/touch_helper.cpp
0158     ${GV_JPEG_DIR}/transupp.c
0159     )
0160 if (kImageAnnotator_FOUND)
0161     set(gwenviewlib_SRCS ${gwenviewlib_SRCS}
0162         annotate/annotatedialog.cpp
0163         annotate/annotateoperation.cpp
0164         annotate/annotatedialog.h
0165         annotate/annotateoperation.h
0166     )
0167 endif()
0168 
0169 if (NOT GWENVIEW_NO_WAYLAND_GESTURES)
0170     set(gwenviewlib_SRCS ${gwenviewlib_SRCS}
0171         waylandgestures/waylandgestures.cpp
0172         waylandgestures/waylandgestures.h
0173     )
0174 endif()
0175 
0176 set_source_files_properties(${GV_JPEG_DIR}/transupp.c PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
0177 
0178 
0179 ecm_qt_declare_logging_category(gwenviewlib_SRCS HEADER gwenview_lib_debug.h IDENTIFIER GWENVIEW_LIB_LOG CATEGORY_NAME org.kde.kdegraphics.gwenview.lib)
0180 ecm_qt_declare_logging_category(gwenviewlib_SRCS HEADER gwenview_exiv2_debug.h IDENTIFIER GWENVIEW_EXIV2_LOG CATEGORY_NAME org.kde.kdegraphics.gwenview.exiv2 DEFAULT_SEVERITY Critical DESCRIPTION "gwenview lib exiv2 (kdegraphics)" EXPORT GWENVIEW)
0181 
0182 if(HAVE_QTDBUS)
0183     set(gwenviewlib_SRCS
0184         ${gwenviewlib_SRCS}
0185         mpris2/lockscreenwatcher.cpp
0186         mpris2/dbusabstractadaptor.cpp
0187         mpris2/mpris2service.cpp
0188         mpris2/mprismediaplayer2.cpp
0189         mpris2/mprismediaplayer2player.cpp
0190         mpris2/lockscreenwatcher.h
0191         mpris2/dbusabstractadaptor.h
0192         mpris2/mpris2service.h
0193         mpris2/mprismediaplayer2.h
0194         mpris2/mprismediaplayer2player.h
0195         )
0196     qt_add_dbus_interface(gwenviewlib_SRCS mpris2/org.freedesktop.ScreenSaver.xml screensaverdbusinterface)
0197 endif()
0198 
0199 if(HAVE_FITS)
0200     set(gwenviewlib_SRCS
0201         ${gwenviewlib_SRCS}
0202         imageformats/fitsplugin.cpp
0203         imageformats/fitshandler.cpp
0204         imageformats/fitsformat/bayer.c
0205         imageformats/fitsformat/fitsdata.cpp
0206         imageformats/fitsplugin.h
0207         imageformats/fitshandler.h
0208         imageformats/fitsformat/bayer.h
0209         imageformats/fitsformat/fitsdata.h
0210         )
0211 endif()
0212 
0213 if (NOT GWENVIEW_SEMANTICINFO_BACKEND_NONE)
0214     set(gwenviewlib_SRCS
0215         ${gwenviewlib_SRCS}
0216         semanticinfo/abstractsemanticinfobackend.cpp
0217         semanticinfo/semanticinfodirmodel.cpp
0218         semanticinfo/tagitemdelegate.cpp
0219         semanticinfo/tagmodel.cpp
0220         semanticinfo/tagwidget.cpp
0221         semanticinfo/abstractsemanticinfobackend.h
0222         semanticinfo/semanticinfodirmodel.h
0223         semanticinfo/tagitemdelegate.h
0224         semanticinfo/tagmodel.h
0225         semanticinfo/tagwidget.h
0226         )
0227 endif()
0228 
0229 if (GWENVIEW_SEMANTICINFO_BACKEND_FAKE)
0230     set(gwenviewlib_SRCS
0231         ${gwenviewlib_SRCS}
0232         semanticinfo/fakesemanticinfobackend.cpp
0233         semanticinfo/fakesemanticinfobackend.h
0234         )
0235 endif()
0236 
0237 if (GWENVIEW_SEMANTICINFO_BACKEND_BALOO)
0238     set(gwenviewlib_SRCS
0239         ${gwenviewlib_SRCS}
0240         semanticinfo/baloosemanticinfobackend.cpp
0241         semanticinfo/baloosemanticinfobackend.h
0242         )
0243 endif()
0244 
0245 kde_source_files_enable_exceptions(
0246     exiv2imageloader.cpp
0247     imagemetainfomodel.cpp
0248     timeutils.cpp
0249     cms/cmsprofile.cpp
0250     document/abstractdocumentimpl.cpp
0251     document/document.cpp
0252     document/loadingdocumentimpl.cpp
0253     jpegcontent.cpp
0254     exiv2imageloader.h
0255     imagemetainfomodel.h
0256     timeutils.h
0257     cms/cmsprofile.h
0258     document/abstractdocumentimpl.h
0259     document/document.h
0260     document/loadingdocumentimpl.h
0261     jpegcontent.h
0262     )
0263 
0264 ki18n_wrap_ui(gwenviewlib_SRCS
0265     documentview/messageview.ui
0266     print/printoptionspage.ui
0267     redeyereduction/redeyereductionwidget.ui
0268     resize/resizeimagewidget.ui
0269     )
0270 
0271 kconfig_add_kcfg_files(gwenviewlib_SRCS
0272     gwenviewconfig.kcfgc
0273     )
0274 
0275 add_library(gwenviewlib SHARED ${gwenviewlib_SRCS})
0276 generate_export_header(gwenviewlib BASE_NAME gwenviewlib)
0277 set_target_properties(gwenviewlib PROPERTIES VERSION ${LIBGWENVIEW_VERSION} SOVERSION 5)
0278 if (WIN32)
0279     set_target_properties(gwenviewlib PROPERTIES COMPILE_FLAGS -DJPEG_STATIC)
0280 endif()
0281 
0282 target_link_libraries(gwenviewlib
0283    Qt::Concurrent
0284    Qt::Svg
0285    Qt::PrintSupport
0286    KF6::GuiAddons
0287    KF6::ConfigGui
0288    KF6::KIOCore
0289    KF6::KIOWidgets
0290    KF6::KIOFileWidgets
0291    KF6::I18n
0292    KF6::WindowSystem
0293    KF6::IconThemes
0294    KF6::XmlGui
0295    LibExiv2::LibExiv2
0296    JPEG::JPEG
0297    PNG::PNG
0298     ${LCMS2_LIBRARIES}
0299     Phonon::phonon4qt6
0300     )
0301 if (QT_MAJOR_VERSION STREQUAL "6")
0302     target_link_libraries(gwenviewlib Qt6::OpenGLWidgets KF6::IconWidgets)
0303 endif()
0304 
0305 
0306 if(HAVE_QTDBUS)
0307     target_link_libraries(gwenviewlib Qt::DBus)
0308 endif()
0309 if(HAVE_FITS)
0310     target_link_libraries(gwenviewlib ${CFITSIO_LIBRARIES})
0311 endif()
0312 
0313 if (WIN32)
0314     target_link_libraries(gwenviewlib ${EXPAT_LIBRARIES})
0315 endif()
0316 
0317 if (KF5KDcraw_FOUND)
0318     target_link_libraries(gwenviewlib KF5::KDcraw)
0319 elseif(KDcrawQt6_FOUND)
0320     target_link_libraries(gwenviewlib KDcrawQt6)
0321 endif()
0322 
0323 if (HAVE_X11)
0324     target_link_libraries(gwenviewlib X11::X11)
0325     if (QT_MAJOR_VERSION STREQUAL "5")
0326         target_link_libraries(gwenviewlib Qt5::X11Extras)
0327     else()
0328         target_link_libraries(gwenviewlib Qt6::GuiPrivate) # Gui/private/qtx11extras_p.h
0329     endif()
0330 endif()
0331 
0332 if (QT_MAJOR_VERSION STREQUAL "6")
0333     target_link_libraries(gwenviewlib Qt6::SvgWidgets)
0334 endif()
0335 
0336 if (GWENVIEW_SEMANTICINFO_BACKEND_BALOO)
0337     target_link_libraries(gwenviewlib
0338         KF6::Baloo
0339         KF6::FileMetaData
0340         )
0341 endif()
0342 
0343 if(kImageAnnotator_FOUND)
0344     target_link_libraries(gwenviewlib kImageAnnotator::kImageAnnotator)
0345 endif()
0346 
0347 if (NOT GWENVIEW_NO_WAYLAND_GESTURES)
0348     if (QT_MAJOR_VERSION EQUAL "5")
0349         ecm_add_qtwayland_client_protocol(wayland_SRCS
0350             PROTOCOL ${WaylandProtocols_DATADIR}/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
0351             BASENAME pointer-gestures-unstable-v1
0352         )
0353     else()
0354         qt6_generate_wayland_protocol_client_sources(gwenviewlib FILES
0355             ${WaylandProtocols_DATADIR}/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml)
0356     endif()
0357 
0358     target_sources(gwenviewlib PRIVATE ${wayland_SRCS})
0359     target_link_libraries(gwenviewlib Wayland::Client Qt::WaylandClient Qt::GuiPrivate)
0360     target_sources(gwenviewlib PRIVATE waylandgestures/waylandgestures.cpp waylandgestures/waylandgestures.h)
0361 endif()
0362 
0363 install(TARGETS gwenviewlib ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP)