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()