Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions dist/win/installer.qbs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import qbs.FileInfo
import qbs.Environment
import qbs.File
import qbs.FileInfo
import qbs.TextFile
import qbs.Environment
import qbs.Utilities

WindowsInstallerPackage {
builtByDefault: project.windowsInstaller
Expand Down Expand Up @@ -55,7 +56,8 @@ WindowsInstallerPackage {
if (pythonHome && File.exists(pythonHome))
defs.push("Python");

var rpMapEnabled = !qbs.toolchain.contains("msvc")
var rpMapEnabled = !qbs.toolchain.contains("msvc") &&
Utilities.versionCompare(Qt.core.version, "6.8") >= 0;
if (rpMapEnabled)
defs.push("RpMap");

Expand Down
7 changes: 7 additions & 0 deletions src/karchive/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ Makefile
avail
random_seed
/build*/
/.vscode/
CMakeLists.txt.user*
*.unc-backup*
.cmake/
/.clang-format
/compile_commands.json
.clangd
.idea
/cmake-build*
.cache
2 changes: 1 addition & 1 deletion src/karchive/AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ Many other contributors, see git log.

For questions about this package, email kde-frameworks-devel@kde.org.

For bug reports, please use http://bugs.kde.org
For bug reports, please use https://bugs.kde.org

135 changes: 93 additions & 42 deletions src/karchive/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,109 +1,160 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)

set(KF5_VERSION "5.76.0") # handled by release scripts
project(KArchive VERSION ${KF5_VERSION})
set(KF_VERSION "6.21.0") # handled by release scripts
project(KArchive VERSION ${KF_VERSION})

include(FeatureSummary)
find_package(ECM 5.75.0 NO_MODULE)
find_package(ECM 6.20.0 NO_MODULE)
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules")
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)

option(WITH_BZIP2 "Make bzip2 required" ON)
option(WITH_LIBLZMA "Make liblzma required" ON)
option(WITH_OPENSSL "Make openssl required" ON)
option(WITH_LIBZSTD "Make libzstd required" ON)

option(BUILD_FUZZERS "Build KArchive fuzzers" OFF)

set(PKGCONFIG_REQUIRED_TYPE "")

if(WITH_BZIP2)
set(BZIP2_PACKAGE_TYPE "REQUIRED")
else()
set(BZIP2_PACKAGE_TYPE "RECOMMENDED")
endif()

if(WITH_LIBLZMA)
set(LIBLZMA_PACKAGE_TYPE "REQUIRED")
else()
set(LIBLZMA_PACKAGE_TYPE "RECOMMENDED")
endif()

if(WITH_OPENSSL)
set(OPENSSL_PACKAGE_TYPE "REQUIRED")
else()
set(OPENSSL_PACKAGE_TYPE "RECOMMENDED")
endif()

if(WITH_LIBZSTD)
set(PKGCONFIG_REQUIRED_TYPE "REQUIRED")
set(LIBZSTD_REQUIRED_TYPE "REQUIRED")
else()
set(LIBZSTD_REQUIRED_TYPE "")
endif()

set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})

include(KDEInstallDirs)
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(KDECMakeSettings)
include(KDEGitCommitHooks)
include(ECMGenerateQDoc)

include(ECMGenerateExportHeader)

set(REQUIRED_QT_VERSION 5.12.0)
find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
set(REQUIRED_QT_VERSION 6.8.0)
find_package(Qt6Core ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)

find_package(ZLIB)
set_package_properties(ZLIB PROPERTIES
URL "http://www.zlib.net"
URL "https://www.zlib.net"
DESCRIPTION "Support for gzip compressed files and data streams"
TYPE REQUIRED
PURPOSE "Required by the core KDE libraries and some critical kioslaves"
PURPOSE "Support for gzip compressed files and data streams"
)

find_package(BZip2)
set_package_properties(BZip2 PROPERTIES
URL "https://sourceware.org/bzip2/"
DESCRIPTION "Support for BZip2 compressed files and data streams"
TYPE RECOMMENDED
TYPE ${BZIP2_PACKAGE_TYPE}
PURPOSE "Support for BZip2 compressed files and data streams"
)

find_package(LibLZMA)
set_package_properties(LibLZMA PROPERTIES
URL "http://tukaani.org/xz/"
URL "https://tukaani.org/xz/"
DESCRIPTION "Support for xz compressed files and data streams"
TYPE ${LIBLZMA_PACKAGE_TYPE}
PURPOSE "Support for xz compressed files and data streams"
)
include_directories(
${ZLIB_INCLUDE_DIR}

find_package(OpenSSL)
set_package_properties(OpenSSL PROPERTIES
URL "https://www.openssl.org/"
DESCRIPTION "Support for encrypted archives"
TYPE ${OPENSSL_PACKAGE_TYPE}
PURPOSE "Support for encrypted archives"
)


find_package(PkgConfig ${PKGCONFIG_REQUIRED_TYPE})
if (PkgConfig_FOUND)
pkg_check_modules(LibZstd ${LIBZSTD_REQUIRED_TYPE} IMPORTED_TARGET "libzstd")
endif()
add_feature_info(LibZstd LibZstd_FOUND
"Support for zstd compressed files and data streams"
)

include(ECMSetupVersion)
include(ECMGenerateHeaders)
include(ECMQtDeclareLoggingCategory)
include(ECMAddQch)
include(ECMDeprecationSettings)
include(ECMPoQmTools)

set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].")

option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")

set(karchive_version_header "${CMAKE_CURRENT_BINARY_DIR}/src/karchive_version.h")
ecm_setup_version(PROJECT
VARIABLE_PREFIX KARCHIVE
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/karchive_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ArchiveConfigVersion.cmake"
SOVERSION 5)
add_definitions(-DQT_NO_FOREACH)
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00)
VERSION_HEADER "${karchive_version_header}"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfigVersion.cmake"
SOVERSION 6)

ecm_set_disabled_deprecation_versions(
QT 6.10
)


add_subdirectory(src)
if (BUILD_TESTING)
add_subdirectory(autotests)
add_subdirectory(tests)
endif()

# create a Config.cmake and a ConfigVersion.cmake file and install them
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Archive")

if (BUILD_QCH)
ecm_install_qch_export(
TARGETS KF5Archive_QCH
FILE KF5ArchiveQchTargets.cmake
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
COMPONENT Devel
)
set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5ArchiveQchTargets.cmake\")")
if (BUILD_FUZZERS)
add_subdirectory(autotests/ossfuzz)
endif()

ecm_install_po_files_as_qm(poqm)

# create a Config.cmake and a ConfigVersion.cmake file and install them
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6Archive")

include(CMakePackageConfigHelpers)

configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/KF5ArchiveConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/KF5ArchiveConfig.cmake"
"${CMAKE_CURRENT_SOURCE_DIR}/KF6ArchiveConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfig.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/karchive_version.h
DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}
install(FILES ${karchive_version_header}
DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KArchive
COMPONENT Devel)

install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/KF5ArchiveConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/KF5ArchiveConfigVersion.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfigVersion.cmake"
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
COMPONENT Devel)

install(EXPORT KF5ArchiveTargets
install(EXPORT KF6ArchiveTargets
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
FILE KF5ArchiveTargets.cmake
NAMESPACE KF5::)
FILE KF6ArchiveTargets.cmake
NAMESPACE KF6::)

include(ECMFeatureSummary)
ecm_feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)

feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
11 changes: 0 additions & 11 deletions src/karchive/KF5ArchiveConfig.cmake.in

This file was deleted.

36 changes: 36 additions & 0 deletions src/karchive/KF6ArchiveConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
@PACKAGE_INIT@

include(CMakeFindDependencyMacro)
find_dependency(Qt6Core @REQUIRED_QT_VERSION@)


set(KArchive_HAVE_ZLIB "@ZLIB_FOUND@")
set(KArchive_HAVE_BZIP2 "@BZIP2_FOUND@")
set(KArchive_HAVE_LZMA "@LIBLZMA_FOUND@")
set(KArchive_HAVE_OPENSSL "@OpenSSL_FOUND@")
set(KArchive_HAVE_ZSTD "@LibZstd_FOUND@")

if (NOT @BUILD_SHARED_LIBS@)
if (@ZLIB_FOUND@)
find_dependency(ZLIB)
endif()

if (@BZIP2_FOUND@)
find_dependency(BZip2)
endif()

if (@LIBLZMA_FOUND@)
find_dependency(LibLZMA)
endif()

if (@OpenSSL_FOUND@)
find_dependency(OpenSSL)
endif()

if (@LibZstd_FOUND@)
find_package(PkgConfig)
pkg_check_modules(LibZstd IMPORTED_TARGET "libzstd")
endif()
endif()

include("${CMAKE_CURRENT_LIST_DIR}/KF6ArchiveTargets.cmake")
Loading