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: