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

0001 # SPDX-FileCopyrightText: 2021 - 2023 Johannes Zarl-Zierl <johannes@zarl-zierl.at>
0002 #
0003 # SPDX-License-Identifier: BSD-3-Clause
0004 
0005 ################################################################################
0006 ### KPA::Base
0007 add_custom_target(
0008     UpdateVersion ALL
0009     COMMAND "${CMAKE_COMMAND}"
0010     "-DBASE_DIR=${kphotoalbum_SOURCE_DIR}" -DPROJECT_NAME=KPA -DPROJECT_VERSION="${kphotoalbum_VERSION}"
0011     "-DOUTPUT_DIR=${CMAKE_CURRENT_SOURCE_DIR}/kpabase"
0012     -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" -P "${kphotoalbum_SOURCE_DIR}/cmake/modules/UpdateVersion.cmake"
0013     COMMENT "Updating version header."
0014     BYPRODUCTS "${CMAKE_CURRENT_SOURCE_DIR}/kpabase/version.h"
0015     )
0016 
0017 find_package(KF5KDcraw)
0018 set_package_properties(KF5KDcraw
0019     PROPERTIES
0020     TYPE OPTIONAL
0021     PURPOSE "Enables RAW image support"
0022     )
0023 set(HAVE_KDCRAW ${KF5KDcraw_FOUND})
0024 
0025 configure_file(kpabase/config-kpa-kdcraw.h.in "${CMAKE_CURRENT_BINARY_DIR}/kpabase/config-kpa-kdcraw.h")
0026 configure_file(kpabase/config-kpa-plugins.h.in "${CMAKE_CURRENT_BINARY_DIR}/kpabase/config-kpa-plugins.h")
0027 configure_file(kpabase/config-kpa-marble.h.in "${CMAKE_CURRENT_BINARY_DIR}/kpabase/config-kpa-marble.h")
0028 
0029 add_library(kpabase
0030     "${CMAKE_CURRENT_BINARY_DIR}/kpabase/config-kpa-kdcraw.h"
0031     "${CMAKE_CURRENT_BINARY_DIR}/kpabase/config-kpa-plugins.h"
0032     "${CMAKE_CURRENT_BINARY_DIR}/kpabase/config-kpa-marble.h"
0033     kpabase/enums.cpp
0034     kpabase/enums.h
0035     kpabase/CrashSentinel.cpp
0036     kpabase/CrashSentinel.h
0037     kpabase/FileName.cpp
0038     kpabase/FileName.h
0039     kpabase/FileNameList.cpp
0040     kpabase/FileNameList.h
0041     kpabase/Logging.cpp
0042     kpabase/Logging.h
0043     kpabase/UIDelegate.cpp
0044     kpabase/UIDelegate.h
0045     kpabase/SettingsData.cpp
0046     kpabase/SettingsData.h
0047     kpabase/FileExtensions.cpp
0048     kpabase/FileExtensions.h
0049     kpabase/FileNameUtil.cpp
0050     kpabase/FileNameUtil.h
0051     kpabase/StringSet.cpp
0052     kpabase/StringSet.h
0053     kpabase/version.h
0054     )
0055 add_library(KPA::Base ALIAS kpabase)
0056 # FIXME(jzarl): once KPhotoAlbum uses internal libs, export public symbols instead:
0057 set_target_properties(kpabase PROPERTIES CXX_VISIBILITY_PRESET default)
0058 
0059 # see CMP0071
0060 set_property(SOURCE kpabase/version.h PROPERTY SKIP_AUTOMOC ON)
0061 
0062 target_link_libraries(kpabase
0063     PUBLIC
0064     KF5::ConfigCore
0065     KF5::I18n
0066     Qt5::Core
0067     )
0068 if(KF5KDcraw_FOUND)
0069     target_link_libraries(kpabase PRIVATE KF5::KDcraw)
0070 endif()
0071 
0072 install(TARGETS kpabase ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0073 
0074 # unit tests:
0075 add_subdirectory(kpabase)
0076 
0077 ################################################################################
0078 ### KPA::Thumbnails
0079 add_library(kpathumbnails
0080     kpathumbnails/ThumbnailCache.cpp
0081     kpathumbnails/ThumbnailCache.h
0082     kpathumbnails/CacheFileInfo.cpp
0083     kpathumbnails/CacheFileInfo.h
0084     )
0085 add_library(KPA::Thumbnails ALIAS kpathumbnails)
0086 # FIXME(jzarl): once KPhotoAlbum uses internal libs, export public symbols instead:
0087 set_target_properties(kpathumbnails PROPERTIES CXX_VISIBILITY_PRESET default)
0088 
0089 target_link_libraries(kpathumbnails
0090     PUBLIC
0091     KPA::Base
0092     Qt5::Gui
0093     )
0094 
0095 install(TARGETS kpathumbnails ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0096 
0097 # unit tests:
0098 add_subdirectory(kpathumbnails)
0099 
0100 ################################################################################
0101 ### KPA::Exif
0102 add_library(kpaexif
0103     kpaexif/Database.cpp
0104     kpaexif/Database.h
0105     kpaexif/SearchInfo.cpp
0106     kpaexif/SearchInfo.h
0107     kpaexif/Info.cpp
0108     kpaexif/Info.h
0109     kpaexif/DatabaseElement.cpp
0110     kpaexif/DatabaseElement.h
0111     )
0112 add_library(KPA::Exif ALIAS kpaexif)
0113 # FIXME(jzarl): once KPhotoAlbum uses internal libs, export public symbols instead:
0114 set_target_properties(kpaexif PROPERTIES CXX_VISIBILITY_PRESET default)
0115 
0116 find_package(exiv2 CONFIG REQUIRED)
0117 # exiv2 0.28.1 moved exiv2lib into the Exiv2 namespace:
0118 if(TARGET Exiv2::exiv2lib)
0119     set(EXIV2_LIBRARIES Exiv2::exiv2lib)
0120 else()
0121     set(EXIV2_LIBRARIES exiv2lib)
0122 endif()
0123 
0124 target_link_libraries(kpaexif
0125     PRIVATE
0126     Qt5::Sql
0127     PUBLIC
0128     ${EXIV2_LIBRARIES} # TODO(jzarl): make this private if possible
0129     KPA::Base
0130     Qt5::Core
0131     )
0132 
0133 install(TARGETS kpaexif ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0134 
0135 # unit tests:
0136 add_subdirectory(kpaexif)
0137 
0138 # vi:expandtab:tabstop=4 shiftwidth=4: