Warning, /frameworks/kfilemetadata/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16)
0002
0003 set(KF_VERSION "6.0.0") # handled by release scripts
0004 set(KF_DEP_VERSION "5.249.0") # handled by release scripts
0005 project(KFileMetaData VERSION ${KF_VERSION})
0006
0007 include(FeatureSummary)
0008 find_package(ECM 5.249.0 NO_MODULE)
0009 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules")
0010 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
0011
0012 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${ECM_MODULE_PATH})
0013
0014 include(KDEInstallDirs)
0015 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
0016 include(KDECMakeSettings)
0017 include(ECMAddTests)
0018 include(ECMGenerateExportHeader)
0019 include(ECMSetupVersion)
0020 include(ECMGenerateHeaders)
0021 include(ECMAddQch)
0022 include(ECMQtDeclareLoggingCategory)
0023 include(ECMDeprecationSettings)
0024 include(CheckStructHasMember)
0025
0026 set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].")
0027
0028 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
0029 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
0030
0031 set(kfilemetadata_version_header "${CMAKE_CURRENT_BINARY_DIR}/src/kfilemetadata_version.h")
0032 ecm_setup_version(PROJECT
0033 VARIABLE_PREFIX KFILEMETADATA
0034 VERSION_HEADER "${kfilemetadata_version_header}"
0035 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6FileMetaDataConfigVersion.cmake"
0036 SOVERSION 3)
0037
0038 # Dependencies
0039 set(REQUIRED_QT_VERSION 6.5.0)
0040
0041 find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG COMPONENTS Gui)
0042 set_package_properties(Qt6Gui PROPERTIES DESCRIPTION "Qt6: Gui component"
0043 TYPE OPTIONAL
0044 PURPOSE "Qt6::Gui is needed to build the AppImage extractor")
0045
0046 find_package(Qt6 ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS Xml)
0047
0048 find_package(KF6 ${KF_DEP_VERSION} COMPONENTS Archive)
0049 set_package_properties(KF6Archive PROPERTIES DESCRIPTION "KDE Frameworks 5: Archive Framework"
0050 URL "https://download.kde.org/stable/frameworks/" TYPE OPTIONAL
0051 PURPOSE "Archive is needed to build ODF and OOXML 2007 extractors")
0052
0053 find_package(KF6 ${KF_DEP_VERSION} COMPONENTS CoreAddons)
0054 set_package_properties(KF6CoreAddons PROPERTIES DESCRIPTION "KDE Frameworks 5: Core Addons Framework"
0055 URL "https://download.kde.org/stable/frameworks/" TYPE REQUIRED
0056 PURPOSE "Needed for the formatting of properties for display purposes")
0057
0058 find_package(KF6 ${KF_DEP_VERSION} COMPONENTS Config)
0059 set_package_properties(KF6Config PROPERTIES DESCRIPTION "KDE Frameworks 5: Config Framework"
0060 URL "https://download.kde.org/stable/frameworks/" TYPE OPTIONAL
0061 PURPOSE "Config is needed to build the AppImage extractor")
0062
0063 find_package(KF6 ${KF_DEP_VERSION} REQUIRED COMPONENTS I18n)
0064
0065 find_package(Poppler 0.12.1 COMPONENTS Qt6)
0066 set_package_properties(Poppler PROPERTIES DESCRIPTION "A PDF rendering library"
0067 URL "https://poppler.freedesktop.org/" TYPE OPTIONAL
0068 PURPOSE "Support for PDF files")
0069
0070 find_package(Taglib 1.12)
0071 set_package_properties(Taglib PROPERTIES
0072 TYPE OPTIONAL
0073 PURPOSE "Support for music metadata")
0074
0075 find_package(LibExiv2 0.26)
0076 set_package_properties(LibExiv2 PROPERTIES
0077 TYPE OPTIONAL
0078 PURPOSE "Support for image metadata")
0079
0080 find_package(FFmpeg 57.48 COMPONENTS AVCODEC)
0081 if (AVCODEC_FOUND)
0082 find_package(FFmpeg 57.40 COMPONENTS AVFORMAT)
0083 if (AVFORMAT_FOUND)
0084 find_package(FFmpeg 55.27 COMPONENTS AVUTIL)
0085 endif()
0086 endif()
0087 set_package_properties(FFmpeg PROPERTIES DESCRIPTION "Video Tag reader"
0088 URL "https://ffmpeg.org/" TYPE OPTIONAL
0089 PURPOSE "Support for video metadata")
0090
0091 find_package(EPub)
0092 set_package_properties(EPub PROPERTIES DESCRIPTION "Ebook epub reader"
0093 URL "https://sourceforge.net/projects/ebook-tools/" TYPE OPTIONAL
0094 PURPOSE "Support for epub metadata")
0095
0096 find_package(CatDoc)
0097 set_package_properties(CatDoc PROPERTIES DESCRIPTION "catdoc executable"
0098 URL "https://www.wagner.pp.ru/~vitus/software/catdoc/" TYPE RUNTIME
0099 PURPOSE "Extract text from office 98 files - RUNTIME dependency")
0100
0101 if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
0102 find_package(Xattr)
0103 set_package_properties(Xattr PROPERTIES DESCRIPTION "library libattr "
0104 URL "https://savannah.nongnu.org/projects/attr"
0105 TYPE REQUIRED
0106 PURPOSE "Extended attribute shared library")
0107 endif()
0108
0109 find_package(QMobipocket6 2.1)
0110 set_package_properties(QMobipocket6 PROPERTIES DESCRIPTION "Mobipocket epub reader"
0111 URL "https://invent.kde.org/graphics/kdegraphics-mobipocket"
0112 TYPE OPTIONAL PURPOSE "Support for mobi metadata")
0113
0114 find_package(libappimage 0.1.10 CONFIG)
0115 set_package_properties(libappimage PROPERTIES DESCRIPTION "Core library of the AppImage project"
0116 URL "https://github.com/AppImage/libappimage"
0117 TYPE OPTIONAL
0118 PURPOSE "Needed to build the AppImage extractor"
0119 )
0120
0121 ecm_set_disabled_deprecation_versions(
0122 QT 6.4
0123 KF 5.102
0124 )
0125
0126 add_definitions(-DTRANSLATION_DOMAIN=\"kfilemetadata6\")
0127 add_subdirectory(src)
0128 if (BUILD_TESTING)
0129 add_subdirectory(autotests)
0130 add_subdirectory(tests)
0131 endif()
0132
0133 # Config files
0134 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6FileMetaData")
0135
0136 ki18n_install(po)
0137
0138 if (BUILD_QCH)
0139 ecm_install_qch_export(
0140 TARGETS KF6FileMetaData_QCH
0141 FILE KF6FileMetaDataQchTargets.cmake
0142 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0143 COMPONENT Devel
0144 )
0145 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF6FileMetaDataQchTargets.cmake\")")
0146 endif()
0147
0148 include(CMakePackageConfigHelpers)
0149
0150 configure_package_config_file(
0151 "${CMAKE_CURRENT_SOURCE_DIR}/KF6FileMetaDataConfig.cmake.in"
0152 "${CMAKE_CURRENT_BINARY_DIR}/KF6FileMetaDataConfig.cmake"
0153 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0154 )
0155
0156 install(FILES
0157 "${CMAKE_CURRENT_BINARY_DIR}/KF6FileMetaDataConfig.cmake"
0158 "${CMAKE_CURRENT_BINARY_DIR}/KF6FileMetaDataConfigVersion.cmake"
0159 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0160 COMPONENT devel
0161 )
0162
0163 install(FILES
0164 ${kfilemetadata_version_header}
0165 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KFileMetaData COMPONENT Devel
0166 )
0167
0168 include(ECMFeatureSummary)
0169 ecm_feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)