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)