Warning, /frameworks/karchive/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 project(KArchive VERSION ${KF_VERSION})
0005 
0006 include(FeatureSummary)
0007 find_package(ECM 5.249.0  NO_MODULE)
0008 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules")
0009 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
0010 
0011 option(WITH_BZIP2 "Make bzip2 required" ON)
0012 option(WITH_LIBLZMA "Make liblzma required" ON)
0013 option(WITH_LIBZSTD "Make libzstd required" ON)
0014 
0015 set(PKGCONFIG_REQUIRED_TYPE "")
0016 
0017 if(WITH_BZIP2)
0018     set(BZIP2_PACKAGE_TYPE "REQUIRED")
0019 else()
0020     set(BZIP2_PACKAGE_TYPE "RECOMMENDED")
0021 endif()
0022 
0023 if(WITH_LIBLZMA)
0024     set(LIBLZMA_PACKAGE_TYPE "REQUIRED")
0025 else()
0026     set(LIBLZMA_PACKAGE_TYPE "RECOMMENDED")
0027 endif()
0028 
0029 if(WITH_LIBZSTD)
0030     set(PKGCONFIG_REQUIRED_TYPE "REQUIRED")
0031     set(LIBZSTD_REQUIRED_TYPE "REQUIRED")
0032 else()
0033     set(LIBZSTD_REQUIRED_TYPE "")
0034 endif()
0035 
0036 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0037 
0038 include(KDEInstallDirs)
0039 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
0040 include(KDECMakeSettings)
0041 include(KDEGitCommitHooks)
0042 
0043 include(ECMGenerateExportHeader)
0044 
0045 set(REQUIRED_QT_VERSION 6.5.0)
0046 find_package(Qt6Core ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
0047 
0048 find_package(ZLIB)
0049 set_package_properties(ZLIB PROPERTIES
0050     URL "https://www.zlib.net"
0051     DESCRIPTION "Support for gzip compressed files and data streams"
0052     TYPE REQUIRED
0053     PURPOSE "Support for gzip compressed files and data streams"
0054 )
0055 
0056 find_package(BZip2)
0057 set_package_properties(BZip2 PROPERTIES
0058     URL "https://sourceware.org/bzip2/"
0059     DESCRIPTION "Support for BZip2 compressed files and data streams"
0060     TYPE ${BZIP2_PACKAGE_TYPE}
0061     PURPOSE "Support for BZip2 compressed files and data streams"
0062 )
0063 
0064 find_package(LibLZMA)
0065 set_package_properties(LibLZMA PROPERTIES
0066     URL "https://tukaani.org/xz/"
0067     DESCRIPTION "Support for xz compressed files and data streams"
0068     TYPE ${LIBLZMA_PACKAGE_TYPE}
0069     PURPOSE "Support for xz compressed files and data streams"
0070 )
0071 
0072 
0073 find_package(PkgConfig ${PKGCONFIG_REQUIRED_TYPE})
0074 if (PkgConfig_FOUND)
0075     pkg_check_modules(LibZstd ${LIBZSTD_REQUIRED_TYPE} IMPORTED_TARGET "libzstd")
0076 endif()
0077 add_feature_info(LibZstd LibZstd_FOUND
0078                 "Support for zstd compressed files and data streams"
0079 )
0080 
0081 include(ECMSetupVersion)
0082 include(ECMGenerateHeaders)
0083 include(ECMQtDeclareLoggingCategory)
0084 include(ECMAddQch)
0085 include(ECMDeprecationSettings)
0086 include(ECMPoQmTools)
0087 
0088 set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].")
0089 
0090 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
0091 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
0092 
0093 set(karchive_version_header "${CMAKE_CURRENT_BINARY_DIR}/src/karchive_version.h")
0094 ecm_setup_version(PROJECT
0095     VARIABLE_PREFIX KARCHIVE
0096     VERSION_HEADER "${karchive_version_header}"
0097     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfigVersion.cmake"
0098     SOVERSION 6)
0099 
0100 ecm_set_disabled_deprecation_versions(
0101     QT 6.5
0102 )
0103 
0104 
0105 add_subdirectory(src)
0106 if (BUILD_TESTING)
0107     add_subdirectory(autotests)
0108     add_subdirectory(tests)
0109 endif()
0110 
0111 ecm_install_po_files_as_qm(poqm)
0112 
0113 # create a Config.cmake and a ConfigVersion.cmake file and install them
0114 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6Archive")
0115 
0116 if (BUILD_QCH)
0117     ecm_install_qch_export(
0118         TARGETS KF6Archive_QCH
0119         FILE KF6ArchiveQchTargets.cmake
0120         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0121         COMPONENT Devel
0122     )
0123     set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF6ArchiveQchTargets.cmake\")")
0124 endif()
0125 
0126 include(CMakePackageConfigHelpers)
0127 
0128 configure_package_config_file(
0129     "${CMAKE_CURRENT_SOURCE_DIR}/KF6ArchiveConfig.cmake.in"
0130     "${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfig.cmake"
0131     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0132 )
0133 
0134 install(FILES ${karchive_version_header}
0135         DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KArchive
0136         COMPONENT Devel)
0137 
0138 install(FILES
0139             "${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfig.cmake"
0140             "${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfigVersion.cmake"
0141         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0142         COMPONENT Devel)
0143 
0144 install(EXPORT KF6ArchiveTargets
0145         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0146         FILE KF6ArchiveTargets.cmake
0147         NAMESPACE KF6::)
0148 
0149 include(ECMFeatureSummary)
0150 ecm_feature_summary(WHAT ALL   FATAL_ON_MISSING_REQUIRED_PACKAGES)
0151 
0152 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)