Warning, /graphics/digikam/core/app/DigikamCoreTarget.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 core object library
0008 #
0009 
0010 set(DIGIKAMCORE_OBJECTS
0011 
0012             ${CMAKE_CURRENT_SOURCE_DIR}/utils/digikam_debug.cpp
0013             ${CMAKE_CURRENT_SOURCE_DIR}/utils/digikam_version.cpp
0014 
0015             $<TARGET_OBJECTS:core_dimg_obj>
0016             $<TARGET_OBJECTS:core_imgqsort_obj>
0017             $<TARGET_OBJECTS:core_dragdrop_obj>
0018             $<TARGET_OBJECTS:core_dmetadata_obj>
0019             $<TARGET_OBJECTS:core_onlineversion_obj>
0020             $<TARGET_OBJECTS:core_jpegutils_obj>
0021             $<TARGET_OBJECTS:core_progressmanager_obj>
0022             $<TARGET_OBJECTS:core_threadimageio_obj>
0023             $<TARGET_OBJECTS:core_pgfutils_obj>
0024             $<TARGET_OBJECTS:core_dthread_obj>
0025             $<TARGET_OBJECTS:core_networkmanager_obj>
0026             $<TARGET_OBJECTS:core_versionmanager_obj>
0027             $<TARGET_OBJECTS:core_libraw_obj>
0028             $<TARGET_OBJECTS:core_rawengine_obj>
0029             $<TARGET_OBJECTS:core_dpluginsinterface_obj>
0030             $<TARGET_OBJECTS:core_libwso2_obj>
0031 
0032             $<TARGET_OBJECTS:core_libmd5_obj>
0033             $<TARGET_OBJECTS:core_libxmp_obj>
0034             $<TARGET_OBJECTS:core_libdng_obj>
0035             $<TARGET_OBJECTS:core_dngwriter_obj>
0036 
0037             # widgets
0038             $<TARGET_OBJECTS:core_digikamwidgets_obj>
0039             $<TARGET_OBJECTS:core_digikamdialogs_obj>
0040             $<TARGET_OBJECTS:core_itemproperties_obj>
0041             $<TARGET_OBJECTS:core_digikamgenericmodels_obj>
0042             $<TARGET_OBJECTS:core_notificationmanager_obj>
0043 
0044             # utilities
0045             $<TARGET_OBJECTS:core_setupcommon_obj>
0046             $<TARGET_OBJECTS:core_imageeditor_obj>
0047             $<TARGET_OBJECTS:core_libtransitionmngr_obj>
0048             $<TARGET_OBJECTS:core_timeadjust_obj>
0049 
0050             $<TARGET_OBJECTS:core_digikamdatabase_obj>
0051             $<TARGET_OBJECTS:core_digikamfacesengine_obj>
0052             $<TARGET_OBJECTS:core_videotoolscommon_obj>
0053 )
0054 
0055 if(ENABLE_MEDIAPLAYER)
0056 
0057     set(DIGIKAMCORE_OBJECTS
0058         ${DIGIKAMCORE_OBJECTS}
0059         $<TARGET_OBJECTS:core_videotools_obj>
0060     )
0061 
0062     if (NOT ENABLE_QTMULTIMEDIA)
0063 
0064         set(DIGIKAMCORE_OBJECTS
0065             ${DIGIKAMCORE_OBJECTS}
0066             $<TARGET_OBJECTS:core_qtavplayer_obj>
0067         )
0068 
0069     endif()
0070 
0071 endif()
0072 
0073 if(ENABLE_GEOLOCATION)
0074 
0075     set(DIGIKAMCORE_OBJECTS
0076         ${DIGIKAMCORE_OBJECTS}
0077         $<TARGET_OBJECTS:core_geoiface_obj>
0078         $<TARGET_OBJECTS:core_geomapwrapper_obj>
0079         $<TARGET_OBJECTS:core_marble_obj>
0080     )
0081 
0082 endif()
0083 
0084 if(KF${QT_VERSION_MAJOR}FileMetaData_FOUND)
0085 
0086     set(DIGIKAMCORE_OBJECTS
0087         ${DIGIKAMCORE_OBJECTS}
0088         $<TARGET_OBJECTS:core_baloowrap_obj>
0089     )
0090 
0091 endif()
0092 
0093 if(KPim${QT_VERSION_MAJOR}AkonadiContact_FOUND)
0094 
0095     set(DIGIKAMCORE_OBJECTS
0096         ${DIGIKAMCORE_OBJECTS}
0097         $<TARGET_OBJECTS:core_akonadiiface_obj>
0098     )
0099 
0100 endif()
0101 
0102 add_library(digikamcore
0103             SHARED
0104             ${DIGIKAMCORE_OBJECTS}
0105 )
0106 
0107 set_target_properties(digikamcore PROPERTIES
0108                       VERSION ${DIGIKAM_VERSION_SHORT}
0109                       SOVERSION ${DIGIKAM_VERSION_SHORT}
0110 )
0111 
0112 target_compile_definitions(digikamcore
0113                            PRIVATE
0114                            digikamcore_EXPORTS
0115 )
0116 
0117 target_include_directories(digikamcore
0118                            PRIVATE
0119                            ${DIGIKAM_TARGET_INCLUDES}
0120 )
0121 
0122 add_dependencies(digikamcore digikam-gitversion)
0123 add_dependencies(digikamcore digikam-builddate)
0124 
0125 # All codes from this target are exported with digikam_core_export.h header and DIGIKAM_EXPORT macro.
0126 generate_export_header(digikamcore
0127                        BASE_NAME digikam
0128                        EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/utils/digikam_core_export.h"
0129 )
0130 
0131 # NOTE: all this target dependencies must be private and not exported
0132 # to prevent inherited dependencies on external plugins.
0133 
0134 target_link_libraries(digikamcore
0135 
0136                       PRIVATE
0137 
0138                       Qt${QT_VERSION_MAJOR}::Core
0139                       Qt${QT_VERSION_MAJOR}::Gui
0140                       Qt${QT_VERSION_MAJOR}::Xml
0141                       Qt${QT_VERSION_MAJOR}::Widgets
0142                       Qt${QT_VERSION_MAJOR}::Sql
0143                       Qt${QT_VERSION_MAJOR}::PrintSupport
0144                       Qt${QT_VERSION_MAJOR}::Concurrent
0145                       Qt${QT_VERSION_MAJOR}::Svg
0146 
0147                       KF${QT_VERSION_MAJOR}::Solid
0148                       KF${QT_VERSION_MAJOR}::WindowSystem
0149                       KF${QT_VERSION_MAJOR}::ConfigGui
0150                       KF${QT_VERSION_MAJOR}::XmlGui
0151                       KF${QT_VERSION_MAJOR}::I18n
0152                       KF${QT_VERSION_MAJOR}::Service
0153                       KF${QT_VERSION_MAJOR}::CoreAddons
0154 
0155                       # Required by CImg which use pthread internally.
0156 
0157                       ${CMAKE_THREAD_LIBS_INIT}
0158                       ${EXPAT_LIBRARY}
0159 
0160                       ${LCMS2_LIBRARIES} # filters
0161 
0162                       ${TIFF_LIBRARIES}
0163                       PNG::PNG
0164                       ${JPEG_LIBRARIES}
0165 
0166                       ${OPENMP_LDFLAGS}
0167 
0168                       opencv_core
0169                       opencv_objdetect
0170                       opencv_imgproc
0171                       opencv_imgcodecs
0172                       opencv_dnn
0173                       opencv_ml
0174                       opencv_flann
0175 )
0176 
0177 if(LibExiv2_FOUND)
0178 
0179     target_link_libraries(digikamcore
0180                           PRIVATE
0181                           ${LibExiv2_LIBRARIES}
0182     )
0183 
0184 else()
0185 
0186     target_link_libraries(digikamcore
0187                           PRIVATE
0188                           exiv2lib
0189     )
0190 
0191 endif()
0192 
0193 if(Qt6_FOUND)
0194 
0195     target_link_libraries(digikamcore
0196                           PRIVATE
0197                           Qt${QT_VERSION_MAJOR}::StateMachine
0198                           Qt${QT_VERSION_MAJOR}::SvgWidgets
0199     )
0200 
0201 endif()
0202 
0203 if(ENABLE_QWEBENGINE)
0204 
0205     target_link_libraries(digikamcore
0206                           PRIVATE
0207                           Qt${QT_VERSION_MAJOR}::WebEngineWidgets
0208     )
0209 
0210 else()
0211 
0212     target_link_libraries(digikamcore
0213                           PRIVATE
0214                           Qt${QT_VERSION_MAJOR}::WebKitWidgets
0215     )
0216 
0217 endif()
0218 
0219 if(ENABLE_DBUS)
0220 
0221     target_link_libraries(digikamcore
0222                           PRIVATE
0223                           Qt${QT_VERSION_MAJOR}::DBus
0224     )
0225 
0226 endif()
0227 
0228 if(ENABLE_MEDIAPLAYER)
0229 
0230     target_link_libraries(digikamcore
0231                           PRIVATE
0232                           Qt${QT_VERSION_MAJOR}::Multimedia
0233                           Qt${QT_VERSION_MAJOR}::MultimediaWidgets
0234                           ${MEDIAPLAYER_LIBRARIES}
0235     )
0236 
0237 endif()
0238 
0239 if(KF${QT_VERSION_MAJOR}IconThemes_FOUND)
0240 
0241     target_link_libraries(digikamcore
0242                           PRIVATE
0243                           KF${QT_VERSION_MAJOR}::IconThemes
0244     )
0245 
0246     if(Qt6_FOUND)
0247 
0248         target_link_libraries(digikamcore
0249                               PRIVATE
0250                               KF${QT_VERSION_MAJOR}::IconWidgets
0251         )
0252 
0253     endif()
0254 
0255 endif()
0256 
0257 if(KF${QT_VERSION_MAJOR}KIO_FOUND)
0258 
0259     target_link_libraries(digikamcore
0260                           PRIVATE
0261                           KF${QT_VERSION_MAJOR}::KIOCore
0262                           KF${QT_VERSION_MAJOR}::KIOWidgets
0263     )
0264 
0265 endif()
0266 
0267 if(KF${QT_VERSION_MAJOR}Notifications_FOUND)
0268 
0269     target_link_libraries(digikamcore
0270                           PRIVATE
0271                           KF${QT_VERSION_MAJOR}::Notifications
0272     )
0273 
0274 endif()
0275 
0276 if(KF${QT_VERSION_MAJOR}NotifyConfig_FOUND)
0277 
0278     target_link_libraries(digikamcore
0279                           PRIVATE
0280                           KF${QT_VERSION_MAJOR}::NotifyConfig
0281     )
0282 
0283 endif()
0284 
0285 if(KF${QT_VERSION_MAJOR}Sonnet_FOUND)
0286 
0287     target_link_libraries(digikamcore
0288                           PRIVATE
0289                           KF${QT_VERSION_MAJOR}::SonnetCore
0290                           KF${QT_VERSION_MAJOR}::SonnetUi
0291     )
0292 
0293 endif()
0294 
0295 if(X11_FOUND)
0296 
0297     if(Qt6_FOUND)
0298 
0299         target_link_libraries(digikamcore
0300                               PRIVATE
0301                               ${X11_LIBRARIES}
0302         )
0303 
0304     else()
0305 
0306 
0307         target_link_libraries(digikamcore
0308                               PRIVATE
0309                               Qt5::X11Extras
0310                               ${X11_LIBRARIES}
0311         )
0312 
0313     endif()
0314 
0315 endif()
0316 
0317 if(Jasper_FOUND)
0318 
0319     target_link_libraries(digikamcore
0320                           PRIVATE
0321                           ${JASPER_LIBRARIES}
0322     )
0323 
0324 endif()
0325 
0326 # LibLqr-1 library rules for content-aware filter
0327 if(GLIB2_FOUND)
0328 
0329     target_link_libraries(digikamcore
0330                           PRIVATE
0331                           ${GLIB2_LIBRARIES}
0332     )
0333 
0334 endif()
0335 
0336 # For HEIF file format support
0337 if(HEIF_FOUND)
0338 
0339     target_link_libraries(digikamcore
0340                           PRIVATE
0341                           Libheif::Libheif
0342     )
0343 
0344 endif()
0345 
0346 if(X265_FOUND)
0347 
0348     target_link_libraries(digikamcore
0349                           PRIVATE
0350                           ${X265_LIBRARIES}
0351     )
0352 
0353 endif()
0354 
0355 if(LensFun_FOUND)
0356 
0357     target_link_libraries(digikamcore
0358                           PRIVATE
0359                           ${LENSFUN_LIBRARIES}
0360     )
0361 
0362 endif()
0363 
0364 if(Magick_FOUND)
0365 
0366     target_link_libraries(digikamcore
0367                           PRIVATE
0368                           ${Magick_LIBRARIES}
0369     )
0370 
0371 endif()
0372 
0373 # for nrfilter
0374 if(OpenCV_FOUND)
0375 
0376     target_link_libraries(digikamcore
0377                           PRIVATE
0378                           ${OpenCV_LIBRARIES}
0379     )
0380 
0381 endif()
0382 
0383 if(KF${QT_VERSION_MAJOR}FileMetaData_FOUND)
0384 
0385     target_link_libraries(digikamcore
0386                           PRIVATE
0387                           KF${QT_VERSION_MAJOR}::FileMetaData
0388     )
0389 
0390 endif()
0391 
0392 if(KPim${QT_VERSION_MAJOR}AkonadiContact_FOUND)
0393 
0394     target_link_libraries(digikamcore
0395                           PRIVATE
0396                           KPim${QT_VERSION_MAJOR}::AkonadiContact
0397     )
0398 
0399 endif()
0400 
0401 if(APPLE)
0402 
0403     target_link_libraries(digikamcore
0404                           PRIVATE
0405                           "-framework AppKit"
0406     )
0407 
0408 endif()
0409 
0410 if(WIN32)
0411 
0412     target_link_libraries(digikamcore
0413                           PRIVATE
0414                           # Defined in RulesWindows.cmake
0415                           ${WSOCK32_LIBRARY}
0416                           ${WS2_32_LIBRARY}
0417                           ${NETAPI32_LIBRARY}
0418                           ${USEENV_LIBRARY}
0419                           ${PSAPI_LIBRARY}
0420     )
0421 
0422 endif()
0423 
0424 if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
0425 
0426     target_link_libraries(digikamcore
0427                           PRIVATE
0428                           ${KVM_LIBRARY}
0429     )
0430 
0431 endif()
0432 
0433 # Share the install include directory for the 3rdparty plugins
0434 target_include_directories(digikamcore INTERFACE "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/digikam>")
0435 
0436 ### Install Rules ###############################################################################################################
0437 
0438 install(TARGETS digikamcore EXPORT DigikamCoreConfig ${INSTALL_TARGETS_DEFAULT_ARGS})
0439 
0440 install(EXPORT DigikamCoreConfig DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/DigikamCore" NAMESPACE Digikam::)
0441 
0442 write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/DigikamCoreConfigVersion.cmake
0443                                  VERSION ${DIGIKAM_VERSION_SHORT}
0444                                  COMPATIBILITY SameMajorVersion)
0445 
0446 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/DigikamCoreConfigVersion.cmake
0447         DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/DigikamCore")
0448 
0449 # install debug symbols
0450 
0451 if(MSVC)
0452     install(FILES "$<TARGET_PDB_FILE:digikamcore>" DESTINATION "${CMAKE_INSTALL_BINDIR}" CONFIGURATIONS Debug RelWithDebInfo)
0453 endif()
0454 
0455 if(APPLE)
0456     install(FILES "$<TARGET_FILE:digikamcore>.dSYM" DESTINATION "${CMAKE_INSTALL_LIBDIR}" CONFIGURATIONS Debug RelWithDebInfo)
0457 endif()