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)