Warning, /graphics/digikam/core/app/DigikamGuiTarget.cmake is written in an unsupported language. File is not indexed.
0001 # 0002 # SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier, <caulier dot gilles at gmail dot com> 0003 # SPDX-FileCopyrightText: 2015 by Veaceslav Munteanu, <veaceslav dot munteanu90 at gmail dot com> 0004 # 0005 # SPDX-License-Identifier: BSD-3-Clause 0006 # 0007 # digiKam GUI object library 0008 0009 if(ENABLE_DBUS) 0010 qt_add_dbus_adaptor(digikamadaptor_SRCS 0011 ${CMAKE_CURRENT_SOURCE_DIR}/main/org.kde.digikam.xml 0012 ${CMAKE_CURRENT_SOURCE_DIR}/main/digikamapp.h 0013 Digikam::DigikamApp) 0014 endif() 0015 0016 set(libdigikamgui_SRCS 0017 0018 ${CMAKE_CURRENT_SOURCE_DIR}/main/digikamapp.cpp 0019 ${CMAKE_CURRENT_SOURCE_DIR}/main/digikamapp_solid.cpp 0020 ${CMAKE_CURRENT_SOURCE_DIR}/main/digikamapp_camera.cpp 0021 ${CMAKE_CURRENT_SOURCE_DIR}/main/digikamapp_import.cpp 0022 ${CMAKE_CURRENT_SOURCE_DIR}/main/digikamapp_config.cpp 0023 ${CMAKE_CURRENT_SOURCE_DIR}/main/digikamapp_tools.cpp 0024 ${CMAKE_CURRENT_SOURCE_DIR}/main/digikamapp_setup.cpp 0025 0026 ${CMAKE_CURRENT_SOURCE_DIR}/date/dpopupframe.cpp 0027 ${CMAKE_CURRENT_SOURCE_DIR}/date/ddateedit.cpp 0028 ${CMAKE_CURRENT_SOURCE_DIR}/date/ddatetable.cpp 0029 ${CMAKE_CURRENT_SOURCE_DIR}/date/ddatetable_p.cpp 0030 ${CMAKE_CURRENT_SOURCE_DIR}/date/ddatepicker.cpp 0031 ${CMAKE_CURRENT_SOURCE_DIR}/date/ddatepicker_p.cpp 0032 ${CMAKE_CURRENT_SOURCE_DIR}/date/ddatetimeedit.cpp 0033 ${CMAKE_CURRENT_SOURCE_DIR}/date/ddatepickerpopup.cpp 0034 ${CMAKE_CURRENT_SOURCE_DIR}/date/datefolderview.cpp 0035 ${CMAKE_CURRENT_SOURCE_DIR}/date/monthwidget.cpp 0036 ${CMAKE_CURRENT_SOURCE_DIR}/date/timelinewidget.cpp 0037 0038 ${CMAKE_CURRENT_SOURCE_DIR}/dragdrop/importdragdrop.cpp 0039 ${CMAKE_CURRENT_SOURCE_DIR}/dragdrop/albumdragdrop.cpp 0040 ${CMAKE_CURRENT_SOURCE_DIR}/dragdrop/ddragobjects.cpp 0041 ${CMAKE_CURRENT_SOURCE_DIR}/dragdrop/itemdragdrop.cpp 0042 ${CMAKE_CURRENT_SOURCE_DIR}/dragdrop/tagdragdrop.cpp 0043 0044 ${CMAKE_CURRENT_SOURCE_DIR}/filters/filtersidebarwidget.cpp 0045 ${CMAKE_CURRENT_SOURCE_DIR}/filters/tagfilterview.cpp 0046 0047 ${CMAKE_CURRENT_SOURCE_DIR}/items/delegate/digikamitemdelegate.cpp 0048 ${CMAKE_CURRENT_SOURCE_DIR}/items/delegate/itemdelegate.cpp 0049 ${CMAKE_CURRENT_SOURCE_DIR}/items/delegate/itemfacedelegate.cpp 0050 ${CMAKE_CURRENT_SOURCE_DIR}/items/views/digikamitemview.cpp 0051 ${CMAKE_CURRENT_SOURCE_DIR}/items/views/digikamitemview_p.cpp 0052 ${CMAKE_CURRENT_SOURCE_DIR}/items/views/itemcategorizedview.cpp 0053 ${CMAKE_CURRENT_SOURCE_DIR}/items/thumbbar/itemthumbnailbar.cpp 0054 ${CMAKE_CURRENT_SOURCE_DIR}/items/thumbbar/itemthumbnaildelegate.cpp 0055 ${CMAKE_CURRENT_SOURCE_DIR}/items/overlays/assignnameoverlay.cpp 0056 ${CMAKE_CURRENT_SOURCE_DIR}/items/overlays/facerejectionoverlay.cpp 0057 ${CMAKE_CURRENT_SOURCE_DIR}/items/overlays/groupindicatoroverlay.cpp 0058 ${CMAKE_CURRENT_SOURCE_DIR}/items/overlays/itemfullscreenoverlay.cpp 0059 ${CMAKE_CURRENT_SOURCE_DIR}/items/overlays/itemratingoverlay.cpp 0060 ${CMAKE_CURRENT_SOURCE_DIR}/items/overlays/itemrotationoverlay.cpp 0061 ${CMAKE_CURRENT_SOURCE_DIR}/items/overlays/itemcoordinatesoverlay.cpp 0062 ${CMAKE_CURRENT_SOURCE_DIR}/items/overlays/itemselectionoverlay.cpp 0063 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/itemviewutilities.cpp 0064 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/tooltipfiller.cpp 0065 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/contextmenuhelper.cpp 0066 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/contextmenuhelper_services.cpp 0067 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/contextmenuhelper_tags.cpp 0068 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/contextmenuhelper_albums.cpp 0069 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/contextmenuhelper_groups.cpp 0070 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/contextmenuhelper_tools.cpp 0071 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/contextmenuhelper_actions.cpp 0072 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/groupingviewimplementation.cpp 0073 ${CMAKE_CURRENT_SOURCE_DIR}/items/utils/itemcategorydrawer.cpp 0074 0075 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview.cpp 0076 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_model.cpp 0077 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_shared.cpp 0078 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_treeview.cpp 0079 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_treeview_delegate.cpp 0080 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_column_configuration_dialog.cpp 0081 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_column_audiovideo.cpp 0082 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_column_file.cpp 0083 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_column_geo.cpp 0084 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_column_digikam.cpp 0085 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_column_item.cpp 0086 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_column_photo.cpp 0087 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_column_thumbnail.cpp 0088 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_columnfactory.cpp 0089 ${CMAKE_CURRENT_SOURCE_DIR}/views/tableview/tableview_selection_model_syncer.cpp 0090 0091 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview.cpp 0092 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview_albums.cpp 0093 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview_groups.cpp 0094 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview_items.cpp 0095 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview_search.cpp 0096 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview_sidebars.cpp 0097 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview_tags.cpp 0098 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview_tools.cpp 0099 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview_views.cpp 0100 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview_zoom.cpp 0101 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/itemiconview_iqs.cpp 0102 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/welcomepageview.cpp 0103 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/trashview.cpp 0104 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/stackedview.cpp 0105 ${CMAKE_CURRENT_SOURCE_DIR}/views/preview/itempreviewcanvas.cpp 0106 ${CMAKE_CURRENT_SOURCE_DIR}/views/preview/itempreviewview.cpp 0107 0108 ${CMAKE_CURRENT_SOURCE_DIR}/views/sidebar/albumfolderviewsidebarwidget.cpp 0109 ${CMAKE_CURRENT_SOURCE_DIR}/views/sidebar/datefolderviewsidebarwidget.cpp 0110 ${CMAKE_CURRENT_SOURCE_DIR}/views/sidebar/timelinesidebarwidget.cpp 0111 ${CMAKE_CURRENT_SOURCE_DIR}/views/sidebar/searchsidebarwidget.cpp 0112 ${CMAKE_CURRENT_SOURCE_DIR}/views/sidebar/fuzzysearchsidebarwidget.cpp 0113 ${CMAKE_CURRENT_SOURCE_DIR}/views/sidebar/labelssidebarwidget.cpp 0114 ${CMAKE_CURRENT_SOURCE_DIR}/views/sidebar/peoplesidebarwidget.cpp 0115 ${CMAKE_CURRENT_SOURCE_DIR}/views/sidebar/tagviewsidebarwidget.cpp 0116 ${CMAKE_CURRENT_SOURCE_DIR}/views/sidebar/sidebarwidget.cpp 0117 0118 ${CMAKE_CURRENT_SOURCE_DIR}/views/utils/dmodelfactory.cpp 0119 ${CMAKE_CURRENT_SOURCE_DIR}/views/utils/componentsinfodlg.cpp 0120 0121 ${digikamadaptor_SRCS} 0122 ) 0123 0124 if(${ENABLE_GEOLOCATION}) 0125 set(libdigikamgui_SRCS 0126 ${libdigikamgui_SRCS} 0127 ${CMAKE_CURRENT_SOURCE_DIR}/views/stack/mapwidgetview.cpp 0128 ${CMAKE_CURRENT_SOURCE_DIR}/views/sidebar/gpssearchsidebarwidget.cpp 0129 ) 0130 endif() 0131 0132 # FIXME 0133 # 0134 #if(ENABLE_DIGIKAM_MODELTEST) 0135 # message(STATUS "Modeltest enabled") 0136 # 0137 # set(libdigikamgui_SRCS ${libdigikamgui_SRCS} 0138 # modeltest/modeltest.cpp) 0139 # 0140 # add_definitions(-DENABLE_DIGIKAM_MODELTEST) 0141 #endif() 0142 0143 add_library(gui_digikam_obj 0144 OBJECT 0145 ${libdigikamgui_SRCS} 0146 ) 0147 0148 target_compile_definitions(gui_digikam_obj 0149 PRIVATE 0150 digikamgui_EXPORTS 0151 ) 0152 0153 target_include_directories(gui_digikam_obj 0154 PRIVATE 0155 ${DIGIKAM_TARGET_INCLUDES} 0156 ) 0157 0158 ### digiKam GUI shared library objects declaration ############################################################################## 0159 0160 set(DIGIKAMGUI_OBJECTS 0161 0162 $<TARGET_OBJECTS:gui_digikam_obj> 0163 0164 # Libs 0165 $<TARGET_OBJECTS:gui_digikamdatabasemain_obj> 0166 $<TARGET_OBJECTS:gui_digikamfacesenginedatabase_obj> 0167 $<TARGET_OBJECTS:gui_digikamdeletedialog_obj> 0168 $<TARGET_OBJECTS:gui_digikamtemplate_obj> 0169 $<TARGET_OBJECTS:gui_itempropertiesdigikam_obj> 0170 $<TARGET_OBJECTS:gui_digikammodels_obj> 0171 $<TARGET_OBJECTS:gui_digikamalbum_obj> 0172 $<TARGET_OBJECTS:gui_fileactionmanager_obj> 0173 $<TARGET_OBJECTS:gui_digikamtags_obj> 0174 $<TARGET_OBJECTS:gui_digikamsettings_obj> 0175 $<TARGET_OBJECTS:gui_filters_obj> 0176 $<TARGET_OBJECTS:gui_imagehistorywidgets_obj> 0177 $<TARGET_OBJECTS:gui_iojobs_obj> 0178 $<TARGET_OBJECTS:gui_dtrash_obj> 0179 $<TARGET_OBJECTS:gui_digikamautotagassignment_obj> 0180 0181 # Utilities 0182 $<TARGET_OBJECTS:gui_setup_obj> 0183 $<TARGET_OBJECTS:gui_lighttable_obj> 0184 $<TARGET_OBJECTS:gui_maintenance_obj> 0185 $<TARGET_OBJECTS:gui_searchwindow_obj> 0186 $<TARGET_OBJECTS:gui_firstrun_obj> 0187 $<TARGET_OBJECTS:gui_fuzzysearch_obj> 0188 $<TARGET_OBJECTS:gui_imageeditorgui_obj> 0189 $<TARGET_OBJECTS:gui_importui_obj> 0190 $<TARGET_OBJECTS:gui_importuibackend_obj> 0191 $<TARGET_OBJECTS:gui_facemanagement_obj> 0192 $<TARGET_OBJECTS:gui_queuemanager_obj> 0193 $<TARGET_OBJECTS:gui_advancedrename_obj> 0194 $<TARGET_OBJECTS:gui_focuspointmanagement_obj> 0195 ) 0196 0197 if(${ENABLE_GEOLOCATION}) 0198 0199 set(DIGIKAMGUI_OBJECTS 0200 ${DIGIKAMGUI_OBJECTS} 0201 $<TARGET_OBJECTS:gui_gpssearch_obj> 0202 ) 0203 0204 endif() 0205 0206 ### digiKam GUI shared library target ########################################################################################### 0207 0208 add_library(digikamgui 0209 SHARED 0210 ${DIGIKAMGUI_OBJECTS} 0211 ) 0212 0213 set_target_properties(digikamgui PROPERTIES 0214 VERSION ${DIGIKAM_VERSION_SHORT} 0215 SOVERSION ${DIGIKAM_VERSION_SHORT} 0216 ) 0217 0218 target_compile_definitions(digikamgui 0219 PRIVATE 0220 digikamgui_EXPORTS 0221 ) 0222 0223 add_dependencies(digikamgui digikamcore digikamdatabase) 0224 0225 # All codes from this target are exported with digikam_gui_export.h header and DIGIKAM_GUI_EXPORT macro. 0226 generate_export_header(digikamgui 0227 BASE_NAME digikam_gui 0228 EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/utils/digikam_gui_export.h" 0229 ) 0230 0231 if(WIN32) 0232 set_target_properties(digikamgui PROPERTIES COMPILE_FLAGS -DJPEG_STATIC) 0233 endif() 0234 0235 # NOTE: all this target dependencies must be private and not exported to prevent inherited dependencies on external plugins. 0236 0237 target_link_libraries(digikamgui 0238 0239 PRIVATE 0240 0241 Qt${QT_VERSION_MAJOR}::Core 0242 Qt${QT_VERSION_MAJOR}::Gui 0243 Qt${QT_VERSION_MAJOR}::Widgets 0244 Qt${QT_VERSION_MAJOR}::Sql 0245 Qt${QT_VERSION_MAJOR}::PrintSupport 0246 0247 KF${QT_VERSION_MAJOR}::XmlGui 0248 KF${QT_VERSION_MAJOR}::Solid 0249 KF${QT_VERSION_MAJOR}::ConfigCore 0250 KF${QT_VERSION_MAJOR}::ConfigGui 0251 KF${QT_VERSION_MAJOR}::Service 0252 KF${QT_VERSION_MAJOR}::WindowSystem 0253 KF${QT_VERSION_MAJOR}::I18n 0254 0255 digikamcore 0256 digikamdatabase 0257 0258 opencv_core 0259 opencv_objdetect 0260 opencv_imgproc 0261 opencv_imgcodecs 0262 opencv_dnn 0263 opencv_ml 0264 opencv_flann 0265 0266 ${FFMPEG_LIBRARIES} 0267 ) 0268 0269 if(ENABLE_QWEBENGINE) 0270 0271 target_link_libraries(digikamgui 0272 PRIVATE 0273 Qt${QT_VERSION_MAJOR}::WebEngineWidgets 0274 ) 0275 0276 else() 0277 0278 target_link_libraries(digikamgui 0279 PRIVATE 0280 Qt${QT_VERSION_MAJOR}::WebKitWidgets 0281 ) 0282 0283 endif() 0284 0285 if(ENABLE_DBUS) 0286 0287 target_link_libraries(digikamgui 0288 PRIVATE 0289 Qt${QT_VERSION_MAJOR}::DBus 0290 ) 0291 0292 endif() 0293 0294 if(KF${QT_VERSION_MAJOR}IconThemes_FOUND) 0295 0296 target_link_libraries(digikamgui 0297 PRIVATE 0298 KF${QT_VERSION_MAJOR}::IconThemes 0299 ) 0300 0301 if(Qt6_FOUND) 0302 0303 target_link_libraries(digikamgui 0304 PRIVATE 0305 KF${QT_VERSION_MAJOR}::IconWidgets 0306 ) 0307 0308 endif() 0309 0310 endif() 0311 0312 if(KF${QT_VERSION_MAJOR}KIO_FOUND) 0313 0314 target_link_libraries(digikamgui 0315 PRIVATE 0316 KF${QT_VERSION_MAJOR}::KIOWidgets 0317 ) 0318 0319 endif() 0320 0321 if(APPLE) 0322 0323 target_link_libraries(digikamgui 0324 PRIVATE 0325 /System/Library/Frameworks/AppKit.framework 0326 ) 0327 0328 endif() 0329 0330 0331 if(NOT WIN32) 0332 0333 # To link under Solaris (see bug #274484) 0334 target_link_libraries(digikamgui 0335 PRIVATE 0336 ${MATH_LIBRARY} 0337 ) 0338 0339 endif() 0340 0341 if(Gphoto2_FOUND) 0342 0343 # See bug #258931: libgphoto2 library must be the last arg for linker. 0344 # See bug #268267 : digiKam need to be linked to libusb to prevent crash 0345 # at gphoto2 init if opencv is linked with libdc1394. Libusb linking rules are 0346 # add to gphoto2 linking rules by Gphoto2 cmake detection script. 0347 0348 target_link_libraries(digikamgui 0349 PRIVATE 0350 ${GPHOTO2_LIBRARIES} 0351 ) 0352 0353 endif() 0354 0355 # Share the install include directory for the 3rdparty plugins 0356 target_include_directories(digikamgui INTERFACE "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/digikam>") 0357 0358 ### Install Rules ############################################################################################################### 0359 0360 install(TARGETS digikamgui EXPORT DigikamGuiConfig ${INSTALL_TARGETS_DEFAULT_ARGS}) 0361 install(EXPORT DigikamGuiConfig DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/DigikamGui" NAMESPACE Digikam::) 0362 0363 write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/DigikamGuiConfigVersion.cmake 0364 VERSION ${DIGIKAM_VERSION_SHORT} 0365 COMPATIBILITY SameMajorVersion) 0366 0367 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/DigikamGuiConfigVersion.cmake 0368 DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/DigikamGui") 0369 0370 # Install debug symbols 0371 0372 if(MSVC) 0373 install(FILES "$<TARGET_PDB_FILE:digikamgui>" DESTINATION "${CMAKE_INSTALL_BINDIR}" CONFIGURATIONS Debug RelWithDebInfo) 0374 endif() 0375 0376 if(APPLE) 0377 install(FILES "$<TARGET_FILE:digikamgui>.dSYM" DESTINATION "${CMAKE_INSTALL_LIBDIR}" CONFIGURATIONS Debug RelWithDebInfo) 0378 endif()