diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,15 +16,17 @@ include(KDECMakeSettings) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) -include(GenerateExportHeader) +include(ECMGenerateExportHeader) include(ECMGenerateHeaders) include(CMakePackageConfigHelpers) include(ECMSetupVersion) include(ECMMarkNonGuiExecutable) include(ECMAddQch) include(ECMQtDeclareLoggingCategory) include(ECMSetupQtPluginMacroNames) +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)") diff --git a/autotests/plasmoidpackagetest.cpp b/autotests/plasmoidpackagetest.cpp --- a/autotests/plasmoidpackagetest.cpp +++ b/autotests/plasmoidpackagetest.cpp @@ -186,11 +186,9 @@ p = new KPackage::Package(m_defaultPackage); p->setPath(m_packageRoot + '/' + m_package); QVERIFY(p->isValid()); - // Ignore deprecation warning, we are actually testing this here. -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#if KPACKAGE_ENABLE_DEPRECATED_SINCE(5, 21) QCOMPARE(p->contentsHash(), QStringLiteral("a41160c6a763ea505c95bee12a7fc87952a61cf1")); -#pragma GCC diagnostic pop +#endif QCOMPARE(p->cryptographicHash(QCryptographicHash::Sha1), QByteArrayLiteral("a41160c6a763ea505c95bee12a7fc87952a61cf1")); delete p; } diff --git a/src/kpackage/CMakeLists.txt b/src/kpackage/CMakeLists.txt --- a/src/kpackage/CMakeLists.txt +++ b/src/kpackage/CMakeLists.txt @@ -32,6 +32,15 @@ add_library(KF5Package ${Package_LIB_SRCS}) add_library(KF5::Package ALIAS KF5Package) +ecm_generate_export_header(KF5Package + EXPORT_FILE_NAME kpackage/package_export.h + BASE_NAME KPackage + # GROUP_BASE_NAME KF <- enable once all of KF modules use ecm_generate_export_header + VERSION ${KF5_VERSION} + DEPRECATED_BASE_VERSION 0 + DEPRECATION_VERSIONS 5.21 + EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} +) target_link_libraries(KF5Package PUBLIC @@ -57,9 +66,6 @@ ) ########### install files ############### -generate_export_header(KF5Package - BASE_NAME Package - EXPORT_FILE_NAME kpackage/package_export.h) ecm_generate_headers(Package_CamelCase_HEADERS HEADER_NAMES Package @@ -105,7 +111,7 @@ LINK_QCHS KF5CoreAddons_QCH BLANK_MACROS - PACKAGE_EXPORT + KPACKAGE_EXPORT TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} COMPONENT Devel diff --git a/src/kpackage/package.h b/src/kpackage/package.h --- a/src/kpackage/package.h +++ b/src/kpackage/package.h @@ -77,7 +77,7 @@ class PackagePrivate; class PackageStructure; -class PACKAGE_EXPORT Package +class KPACKAGE_EXPORT Package { public: /** @@ -225,13 +225,14 @@ */ KPluginMetaData metadata() const; +#if KPACKAGE_ENABLE_DEPRECATED_SINCE(5, 21) /** * @return a SHA1 hash digest of the contents of the package in hexadecimal form * @since 4.4 * @deprecated Since 5.21 use cryptographicHash */ -#ifndef PACKAGE_NO_DEPRECATED - PACKAGE_DEPRECATED QString contentsHash() const; + KPACKAGE_DEPRECATED_VERSION(5, 21, "Use Package::cryptographicHash(QCryptographicHash::Algorithm)") + QString contentsHash() const; #endif /** diff --git a/src/kpackage/package.cpp b/src/kpackage/package.cpp --- a/src/kpackage/package.cpp +++ b/src/kpackage/package.cpp @@ -627,7 +627,7 @@ } } -#ifndef PACKAGE_NO_DEPRECATED +#if KPACKAGE_BUILD_DEPRECATED_SINCE(5, 21) QString Package::contentsHash() const { return QString::fromLocal8Bit(cryptographicHash(QCryptographicHash::Sha1)); diff --git a/src/kpackage/packageloader.h b/src/kpackage/packageloader.h --- a/src/kpackage/packageloader.h +++ b/src/kpackage/packageloader.h @@ -41,7 +41,7 @@ * * @author Ryan Rix **/ -class PACKAGE_EXPORT PackageLoader +class KPACKAGE_EXPORT PackageLoader { public: /** diff --git a/src/kpackage/packagestructure.h b/src/kpackage/packagestructure.h --- a/src/kpackage/packagestructure.h +++ b/src/kpackage/packagestructure.h @@ -53,7 +53,7 @@ * * @author Aaron Seigo */ -class PACKAGE_EXPORT PackageStructure : public QObject +class KPACKAGE_EXPORT PackageStructure : public QObject { Q_OBJECT diff --git a/src/kpackage/version.h b/src/kpackage/version.h --- a/src/kpackage/version.h +++ b/src/kpackage/version.h @@ -42,32 +42,32 @@ /** * The runtime version of libkpackage */ -PACKAGE_EXPORT unsigned int version(); +KPACKAGE_EXPORT unsigned int version(); /** * The runtime major version of libkpackage */ -PACKAGE_EXPORT unsigned int versionMajor(); +KPACKAGE_EXPORT unsigned int versionMajor(); /** * The runtime major version of libkpackage */ -PACKAGE_EXPORT unsigned int versionMinor(); +KPACKAGE_EXPORT unsigned int versionMinor(); /** * The runtime major version of libkpackage */ -PACKAGE_EXPORT unsigned int versionRelease(); +KPACKAGE_EXPORT unsigned int versionRelease(); /** * The runtime version string of libkpackage */ -PACKAGE_EXPORT const char *versionString(); +KPACKAGE_EXPORT const char *versionString(); /** * Verifies that a plugin is compatible with plasma */ -PACKAGE_EXPORT bool isPluginVersionCompatible(unsigned int version); +KPACKAGE_EXPORT bool isPluginVersionCompatible(unsigned int version); } // Plasma namespace