364 lines
10 KiB
CMake
364 lines
10 KiB
CMake
|
project(gwenviewlib)
|
||
|
|
||
|
add_definitions(-DTRANSLATION_DOMAIN="gwenview")
|
||
|
|
||
|
set(LIBGWENVIEW_VERSION "4.97.0")
|
||
|
|
||
|
if (${JPEG_VERSION} LESS 80)
|
||
|
set(GV_JPEG_DIR libjpeg-62)
|
||
|
endif()
|
||
|
|
||
|
if (${JPEG_VERSION} EQUAL 80)
|
||
|
set(GV_JPEG_DIR libjpeg-80)
|
||
|
endif()
|
||
|
|
||
|
if (${JPEG_VERSION} EQUAL 90)
|
||
|
set(GV_JPEG_DIR libjpeg-90)
|
||
|
endif()
|
||
|
|
||
|
if ("${GV_JPEG_DIR}" STREQUAL "")
|
||
|
message(FATAL_ERROR "Unknown libjpeg version: ${jpeglib_version}")
|
||
|
endif()
|
||
|
|
||
|
message(STATUS "libjpeg version: ${JPEG_VERSION}")
|
||
|
|
||
|
add_definitions(-Dlibjpeg_EXPORTS)
|
||
|
include_directories(
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/${GV_JPEG_DIR}
|
||
|
${CMAKE_CURRENT_SOURCE_DIR}/..
|
||
|
${CMAKE_CURRENT_BINARY_DIR}
|
||
|
)
|
||
|
|
||
|
if(HAVE_FITS)
|
||
|
include_directories(
|
||
|
${CFITSIO_INCLUDE_DIR}
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
# For config-gwenview.h
|
||
|
include_directories(
|
||
|
${CMAKE_CURRENT_BINARY_DIR}/..
|
||
|
)
|
||
|
|
||
|
set(gwenviewlib_SRCS
|
||
|
bcg/bcgimageoperation.cpp
|
||
|
bcg/bcgtool.cpp
|
||
|
bcg/bcgwidget.cpp
|
||
|
bcg/imageutils.cpp
|
||
|
cms/iccjpeg.c
|
||
|
cms/cmsprofile.cpp
|
||
|
cms/cmsprofile_png.cpp
|
||
|
contextmanager.cpp
|
||
|
crop/cropwidget.cpp
|
||
|
crop/cropimageoperation.cpp
|
||
|
crop/croptool.cpp
|
||
|
document/abstractdocumentimpl.cpp
|
||
|
document/documentjob.cpp
|
||
|
document/animateddocumentloadedimpl.cpp
|
||
|
document/document.cpp
|
||
|
document/documentfactory.cpp
|
||
|
document/documentloadedimpl.cpp
|
||
|
document/emptydocumentimpl.cpp
|
||
|
document/jpegdocumentloadedimpl.cpp
|
||
|
document/loadingdocumentimpl.cpp
|
||
|
document/loadingjob.cpp
|
||
|
document/savejob.cpp
|
||
|
document/svgdocumentloadedimpl.cpp
|
||
|
document/videodocumentloadedimpl.cpp
|
||
|
documentview/abstractdocumentviewadapter.cpp
|
||
|
documentview/abstractimageview.cpp
|
||
|
documentview/abstractrasterimageviewtool.cpp
|
||
|
documentview/alphabackgrounditem.cpp
|
||
|
documentview/birdeyeview.cpp
|
||
|
documentview/documentview.cpp
|
||
|
documentview/documentviewcontroller.cpp
|
||
|
documentview/documentviewsynchronizer.cpp
|
||
|
documentview/loadingindicator.cpp
|
||
|
documentview/messageviewadapter.cpp
|
||
|
documentview/rasterimageview.cpp
|
||
|
documentview/rasterimageviewadapter.cpp
|
||
|
documentview/rasterimageitem.cpp
|
||
|
documentview/svgviewadapter.cpp
|
||
|
documentview/videoviewadapter.cpp
|
||
|
about.cpp
|
||
|
abstractimageoperation.cpp
|
||
|
disabledactionshortcutmonitor.cpp
|
||
|
documentonlyproxymodel.cpp
|
||
|
documentview/documentviewcontainer.cpp
|
||
|
binder.cpp
|
||
|
eventwatcher.cpp
|
||
|
historymodel.cpp
|
||
|
recentfilesmodel.cpp
|
||
|
archiveutils.cpp
|
||
|
datewidget.cpp
|
||
|
decoratedtag/decoratedtag.cpp
|
||
|
exiv2imageloader.cpp
|
||
|
flowlayout.cpp
|
||
|
fullscreenbar.cpp
|
||
|
hud/hudbutton.cpp
|
||
|
hud/hudbuttonbox.cpp
|
||
|
hud/hudcountdown.cpp
|
||
|
hud/hudlabel.cpp
|
||
|
hud/hudmessagebubble.cpp
|
||
|
hud/hudslider.cpp
|
||
|
hud/hudtheme.cpp
|
||
|
hud/hudwidget.cpp
|
||
|
graphicswidgetfloater.cpp
|
||
|
imagemetainfomodel.cpp
|
||
|
imageutils.cpp
|
||
|
invisiblebuttongroup.cpp
|
||
|
iodevicejpegsourcemanager.cpp
|
||
|
jpegcontent.cpp
|
||
|
kindproxymodel.cpp
|
||
|
semanticinfo/sorteddirmodel.cpp
|
||
|
memoryutils.cpp
|
||
|
mimetypeutils.cpp
|
||
|
paintutils.cpp
|
||
|
placetreemodel.cpp
|
||
|
preferredimagemetainfomodel.cpp
|
||
|
print/printhelper.cpp
|
||
|
print/printoptionspage.cpp
|
||
|
recursivedirmodel.cpp
|
||
|
shadowfilter.cpp
|
||
|
slidecontainer.cpp
|
||
|
slideshow.cpp
|
||
|
statusbartoolbutton.cpp
|
||
|
stylesheetutils.cpp
|
||
|
redeyereduction/redeyereductionimageoperation.cpp
|
||
|
redeyereduction/redeyereductiontool.cpp
|
||
|
resize/resizeimageoperation.cpp
|
||
|
resize/resizeimagedialog.cpp
|
||
|
thumbnailprovider/thumbnailgenerator.cpp
|
||
|
thumbnailprovider/thumbnailprovider.cpp
|
||
|
thumbnailprovider/thumbnailwriter.cpp
|
||
|
thumbnailview/abstractthumbnailviewhelper.cpp
|
||
|
thumbnailview/abstractdocumentinfoprovider.cpp
|
||
|
thumbnailview/dragpixmapgenerator.cpp
|
||
|
thumbnailview/itemeditor.cpp
|
||
|
thumbnailview/previewitemdelegate.cpp
|
||
|
thumbnailview/thumbnailbarview.cpp
|
||
|
thumbnailview/thumbnailslider.cpp
|
||
|
thumbnailview/thumbnailview.cpp
|
||
|
thumbnailview/tooltipwidget.cpp
|
||
|
timeutils.cpp
|
||
|
transformimageoperation.cpp
|
||
|
urlutils.cpp
|
||
|
widgetfloater.cpp
|
||
|
zoomcombobox/zoomcombobox.cpp
|
||
|
zoomslider.cpp
|
||
|
zoomwidget.cpp
|
||
|
scrollerutils.cpp
|
||
|
touch/touch.cpp
|
||
|
touch/tapholdandmoving.cpp
|
||
|
touch/twofingerpan.cpp
|
||
|
touch/oneandtwofingerswipe.cpp
|
||
|
touch/doubletap.cpp
|
||
|
touch/twofingertap.cpp
|
||
|
touch/touch_helper.cpp
|
||
|
${GV_JPEG_DIR}/transupp.c
|
||
|
)
|
||
|
if (kImageAnnotator-Qt6_FOUND)
|
||
|
set(gwenviewlib_SRCS ${gwenviewlib_SRCS}
|
||
|
annotate/annotatedialog.cpp
|
||
|
annotate/annotateoperation.cpp
|
||
|
annotate/annotatedialog.h
|
||
|
annotate/annotateoperation.h
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
if (NOT GWENVIEW_NO_WAYLAND_GESTURES)
|
||
|
set(gwenviewlib_SRCS ${gwenviewlib_SRCS}
|
||
|
waylandgestures/waylandgestures.cpp
|
||
|
waylandgestures/waylandgestures.h
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
set_source_files_properties(${GV_JPEG_DIR}/transupp.c PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
|
||
|
|
||
|
|
||
|
ecm_qt_declare_logging_category(gwenviewlib_SRCS HEADER gwenview_lib_debug.h IDENTIFIER GWENVIEW_LIB_LOG CATEGORY_NAME org.kde.kdegraphics.gwenview.lib)
|
||
|
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)
|
||
|
|
||
|
if(HAVE_QTDBUS)
|
||
|
set(gwenviewlib_SRCS
|
||
|
${gwenviewlib_SRCS}
|
||
|
mpris2/lockscreenwatcher.cpp
|
||
|
mpris2/dbusabstractadaptor.cpp
|
||
|
mpris2/mpris2service.cpp
|
||
|
mpris2/mprismediaplayer2.cpp
|
||
|
mpris2/mprismediaplayer2player.cpp
|
||
|
mpris2/lockscreenwatcher.h
|
||
|
mpris2/dbusabstractadaptor.h
|
||
|
mpris2/mpris2service.h
|
||
|
mpris2/mprismediaplayer2.h
|
||
|
mpris2/mprismediaplayer2player.h
|
||
|
)
|
||
|
qt_add_dbus_interface(gwenviewlib_SRCS mpris2/org.freedesktop.ScreenSaver.xml screensaverdbusinterface)
|
||
|
endif()
|
||
|
|
||
|
if(HAVE_FITS)
|
||
|
set(gwenviewlib_SRCS
|
||
|
${gwenviewlib_SRCS}
|
||
|
imageformats/fitsplugin.cpp
|
||
|
imageformats/fitshandler.cpp
|
||
|
imageformats/fitsformat/bayer.c
|
||
|
imageformats/fitsformat/fitsdata.cpp
|
||
|
imageformats/fitsplugin.h
|
||
|
imageformats/fitshandler.h
|
||
|
imageformats/fitsformat/bayer.h
|
||
|
imageformats/fitsformat/fitsdata.h
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
if (NOT GWENVIEW_SEMANTICINFO_BACKEND_NONE)
|
||
|
set(gwenviewlib_SRCS
|
||
|
${gwenviewlib_SRCS}
|
||
|
semanticinfo/abstractsemanticinfobackend.cpp
|
||
|
semanticinfo/semanticinfodirmodel.cpp
|
||
|
semanticinfo/tagitemdelegate.cpp
|
||
|
semanticinfo/tagmodel.cpp
|
||
|
semanticinfo/tagwidget.cpp
|
||
|
semanticinfo/abstractsemanticinfobackend.h
|
||
|
semanticinfo/semanticinfodirmodel.h
|
||
|
semanticinfo/tagitemdelegate.h
|
||
|
semanticinfo/tagmodel.h
|
||
|
semanticinfo/tagwidget.h
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
if (GWENVIEW_SEMANTICINFO_BACKEND_FAKE)
|
||
|
set(gwenviewlib_SRCS
|
||
|
${gwenviewlib_SRCS}
|
||
|
semanticinfo/fakesemanticinfobackend.cpp
|
||
|
semanticinfo/fakesemanticinfobackend.h
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
if (GWENVIEW_SEMANTICINFO_BACKEND_BALOO)
|
||
|
set(gwenviewlib_SRCS
|
||
|
${gwenviewlib_SRCS}
|
||
|
semanticinfo/baloosemanticinfobackend.cpp
|
||
|
semanticinfo/baloosemanticinfobackend.h
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
kde_source_files_enable_exceptions(
|
||
|
exiv2imageloader.cpp
|
||
|
imagemetainfomodel.cpp
|
||
|
timeutils.cpp
|
||
|
cms/cmsprofile.cpp
|
||
|
document/abstractdocumentimpl.cpp
|
||
|
document/document.cpp
|
||
|
document/loadingdocumentimpl.cpp
|
||
|
jpegcontent.cpp
|
||
|
exiv2imageloader.h
|
||
|
imagemetainfomodel.h
|
||
|
timeutils.h
|
||
|
cms/cmsprofile.h
|
||
|
document/abstractdocumentimpl.h
|
||
|
document/document.h
|
||
|
document/loadingdocumentimpl.h
|
||
|
jpegcontent.h
|
||
|
)
|
||
|
|
||
|
ki18n_wrap_ui(gwenviewlib_SRCS
|
||
|
documentview/messageview.ui
|
||
|
print/printoptionspage.ui
|
||
|
redeyereduction/redeyereductionwidget.ui
|
||
|
resize/resizeimagewidget.ui
|
||
|
)
|
||
|
|
||
|
kconfig_add_kcfg_files(gwenviewlib_SRCS
|
||
|
gwenviewconfig.kcfgc
|
||
|
)
|
||
|
|
||
|
add_library(gwenviewlib SHARED ${gwenviewlib_SRCS})
|
||
|
generate_export_header(gwenviewlib BASE_NAME gwenviewlib)
|
||
|
set_target_properties(gwenviewlib PROPERTIES VERSION ${LIBGWENVIEW_VERSION} SOVERSION 5)
|
||
|
if (WIN32)
|
||
|
set_target_properties(gwenviewlib PROPERTIES COMPILE_FLAGS -DJPEG_STATIC)
|
||
|
endif()
|
||
|
|
||
|
target_link_libraries(gwenviewlib
|
||
|
Qt::Concurrent
|
||
|
Qt::Svg
|
||
|
Qt::PrintSupport
|
||
|
KF6::GuiAddons
|
||
|
KF6::ConfigGui
|
||
|
KF6::KIOCore
|
||
|
KF6::KIOWidgets
|
||
|
KF6::KIOFileWidgets
|
||
|
KF6::I18n
|
||
|
KF6::WindowSystem
|
||
|
KF6::IconThemes
|
||
|
KF6::XmlGui
|
||
|
LibExiv2::LibExiv2
|
||
|
JPEG::JPEG
|
||
|
PNG::PNG
|
||
|
${LCMS2_LIBRARIES}
|
||
|
Phonon::phonon4qt6
|
||
|
)
|
||
|
if (QT_MAJOR_VERSION STREQUAL "6")
|
||
|
target_link_libraries(gwenviewlib Qt6::OpenGLWidgets KF6::IconWidgets)
|
||
|
endif()
|
||
|
|
||
|
|
||
|
if(HAVE_QTDBUS)
|
||
|
target_link_libraries(gwenviewlib Qt::DBus)
|
||
|
endif()
|
||
|
if(HAVE_FITS)
|
||
|
target_link_libraries(gwenviewlib ${CFITSIO_LIBRARIES})
|
||
|
endif()
|
||
|
|
||
|
if (WIN32)
|
||
|
target_link_libraries(gwenviewlib ${EXPAT_LIBRARIES})
|
||
|
endif()
|
||
|
|
||
|
if (KF5KDcraw_FOUND)
|
||
|
target_link_libraries(gwenviewlib KF5::KDcraw)
|
||
|
elseif(KDcrawQt6_FOUND)
|
||
|
target_link_libraries(gwenviewlib KDcrawQt6)
|
||
|
endif()
|
||
|
|
||
|
if (HAVE_X11)
|
||
|
target_link_libraries(gwenviewlib X11::X11)
|
||
|
if (QT_MAJOR_VERSION STREQUAL "5")
|
||
|
target_link_libraries(gwenviewlib Qt5::X11Extras)
|
||
|
else()
|
||
|
target_link_libraries(gwenviewlib Qt6::GuiPrivate) # Gui/private/qtx11extras_p.h
|
||
|
endif()
|
||
|
endif()
|
||
|
|
||
|
if (QT_MAJOR_VERSION STREQUAL "6")
|
||
|
target_link_libraries(gwenviewlib Qt6::SvgWidgets)
|
||
|
endif()
|
||
|
|
||
|
if (GWENVIEW_SEMANTICINFO_BACKEND_BALOO)
|
||
|
target_link_libraries(gwenviewlib
|
||
|
KF6::Baloo
|
||
|
KF6::FileMetaData
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
if(kImageAnnotator-Qt6_FOUND)
|
||
|
target_link_libraries(gwenviewlib kImageAnnotator::kImageAnnotator)
|
||
|
endif()
|
||
|
|
||
|
if (NOT GWENVIEW_NO_WAYLAND_GESTURES)
|
||
|
if (QT_MAJOR_VERSION EQUAL "5")
|
||
|
ecm_add_qtwayland_client_protocol(wayland_SRCS
|
||
|
PROTOCOL ${WaylandProtocols_DATADIR}/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
|
||
|
BASENAME pointer-gestures-unstable-v1
|
||
|
)
|
||
|
else()
|
||
|
qt6_generate_wayland_protocol_client_sources(gwenviewlib FILES
|
||
|
${WaylandProtocols_DATADIR}/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml)
|
||
|
endif()
|
||
|
|
||
|
target_sources(gwenviewlib PRIVATE ${wayland_SRCS})
|
||
|
target_link_libraries(gwenviewlib Wayland::Client Qt::WaylandClient Qt::GuiPrivate)
|
||
|
target_sources(gwenviewlib PRIVATE waylandgestures/waylandgestures.cpp waylandgestures/waylandgestures.h)
|
||
|
endif()
|
||
|
|
||
|
install(TARGETS gwenviewlib ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP)
|