From a060a70cf6a815b18dc42ed76a3a577cc3ec14e2 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Mon, 4 Apr 2022 12:00:16 +0200 Subject: Rename QXmppGlobal to QXmppBuildConstants Plan is to split up Global into build constants and other globals. This avoids hassle when editing QXmppGlobal. With IDEs it can easily happen that you edit the wrong file from the build dir instead the `.h.in`. Co-authored-by: Melvin Keskin --- src/CMakeLists.txt | 5 +- src/base/QXmppBuildConstants.h.in | 109 ++++++++++++++++++++++++++++++++++++++ src/base/QXmppGlobal.h | 12 +++++ src/base/QXmppGlobal.h.in | 109 -------------------------------------- 4 files changed, 124 insertions(+), 111 deletions(-) create mode 100644 src/base/QXmppBuildConstants.h.in create mode 100644 src/base/QXmppGlobal.h delete mode 100644 src/base/QXmppGlobal.h.in (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cb9a04f1..ec5686ff 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,11 +16,11 @@ if(BUILD_SHARED) else() set(QXMPP_BUILD_SHARED false) endif() -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/base/QXmppGlobal.h.in ${CMAKE_CURRENT_BINARY_DIR}/base/QXmppGlobal.h @ONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/base/QXmppBuildConstants.h.in ${CMAKE_CURRENT_BINARY_DIR}/base/QXmppBuildConstants.h @ONLY) include_directories(${CMAKE_CURRENT_BINARY_DIR}/base) set(INSTALL_HEADER_FILES - ${CMAKE_CURRENT_BINARY_DIR}/base/QXmppGlobal.h + ${CMAKE_CURRENT_BINARY_DIR}/base/QXmppBuildConstants.h # Base base/QXmppArchiveIq.h @@ -38,6 +38,7 @@ set(INSTALL_HEADER_FILES base/QXmppEntityTimeIq.h base/QXmppFutureUtils_p.h base/QXmppGeolocItem.h + base/QXmppGlobal.h base/QXmppHttpUploadIq.h base/QXmppIbbIq.h base/QXmppIq.h diff --git a/src/base/QXmppBuildConstants.h.in b/src/base/QXmppBuildConstants.h.in new file mode 100644 index 00000000..5e9d7f96 --- /dev/null +++ b/src/base/QXmppBuildConstants.h.in @@ -0,0 +1,109 @@ +// SPDX-FileCopyrightText: 2010 Manjeet Dahiya +// SPDX-FileCopyrightText: 2017 Niels Ole Salscheider +// SPDX-FileCopyrightText: 2019 Linus Jahn +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#ifndef QXMPPBUILDCONSTANTS_H +#define QXMPPBUILDCONSTANTS_H + +#include + +#define QXMPP_BUILD_SHARED @QXMPP_BUILD_SHARED@ + +#if QXMPP_BUILD_SHARED +# if defined(QXMPP_BUILD) +# define QXMPP_EXPORT Q_DECL_EXPORT +# else +# define QXMPP_EXPORT Q_DECL_IMPORT +# endif +#else +# define QXMPP_EXPORT +#endif + +#define QXMPP_AUTOTEST_EXPORT + +/// +/// This macro expands a numeric value of the form 0xMMNNPP (MM = +/// major, NN = minor, PP = patch) that specifies QXmpp's version +/// number. For example, if you compile your application against +/// QXmpp 1.2.3, the QXMPP_VERSION macro will expand to 0x010203. +/// +/// You can use QXMPP_VERSION to use the latest QXmpp features where +/// available. +/// +#define QXMPP_VERSION QT_VERSION_CHECK(@PROJECT_VERSION_MAJOR@, @PROJECT_VERSION_MINOR@, @PROJECT_VERSION_PATCH@) + +/// +/// Returns the version of QXmpp used at compile time as a string. +/// +inline QLatin1String QXmppVersion() +{ + return QLatin1String("@PROJECT_VERSION@"); +} + +// This sets which deprecated functions should still be usable +// It works exactly like QT_DISABLE_DEPRECATED_BEFORE +#ifndef QXMPP_DISABLE_DEPRECATED_BEFORE +# define QXMPP_DISABLE_DEPRECATED_BEFORE 0x0 +#endif + +// This works exactly like QT_DEPRECATED_SINCE, but checks QXMPP_DISABLE_DEPRECATED_BEFORE instead. +#define QXMPP_DEPRECATED_SINCE(major, minor) (QT_VERSION_CHECK(major, minor, 0) > QXMPP_DISABLE_DEPRECATED_BEFORE) + +// workaround for Qt < 5.12 +#ifndef Q_DECL_ENUMERATOR_DEPRECATED_X +#define Q_DECL_ENUMERATOR_DEPRECATED_X(msg) +#endif + +#ifndef QT_WARNING_DISABLE_DEPRECATED +#define QT_WARNING_DISABLE_DEPRECATED +#endif + +/// +/// \namespace QXmpp +/// +/// Contains global functions and enumerations. +/// +/// \since QXmpp 1.5 +/// +namespace QXmpp { + +/// +/// Parsing/serialization mode when using Stanza Content Encryption. +/// +/// \sa \xep{0420, Stanza Content Encryption} +/// +/// \since QXmpp 1.5 +/// +enum SceMode : uint8_t { + SceAll, ///< Processes all known elements. + ScePublic, ///< Only processes 'public' elements (e.g. needed for routing). + SceSensitive, ///< Only processes sensitive elements that should be encrypted. +}; + +/// +/// Checks whether a mode is enabled. +/// +/// When an SceMode is given you can use this to check whether Public or Private +/// elements are enabled. +/// +/// \since QXmpp 1.5 +/// +inline constexpr bool operator&(SceMode mode1, SceMode mode2) +{ + return mode1 == SceAll || mode1 == mode2; +} + +/// +/// An empty struct indicating success in results. +/// +/// \since QXmpp 1.5 +/// +struct Success +{ +}; + +} + +#endif // QXMPPBUILDCONSTANTS_H diff --git a/src/base/QXmppGlobal.h b/src/base/QXmppGlobal.h new file mode 100644 index 00000000..d71037bd --- /dev/null +++ b/src/base/QXmppGlobal.h @@ -0,0 +1,12 @@ +// SPDX-FileCopyrightText: 2010 Manjeet Dahiya +// SPDX-FileCopyrightText: 2017 Niels Ole Salscheider +// SPDX-FileCopyrightText: 2019 Linus Jahn +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#ifndef QXMPPGLOBAL_H +#define QXMPPGLOBAL_H + +#include "QXmppBuildConstants.h" + +#endif // QXMPPGLOBAL_H diff --git a/src/base/QXmppGlobal.h.in b/src/base/QXmppGlobal.h.in deleted file mode 100644 index 61b2e965..00000000 --- a/src/base/QXmppGlobal.h.in +++ /dev/null @@ -1,109 +0,0 @@ -// SPDX-FileCopyrightText: 2010 Manjeet Dahiya -// SPDX-FileCopyrightText: 2017 Niels Ole Salscheider -// SPDX-FileCopyrightText: 2019 Linus Jahn -// -// SPDX-License-Identifier: LGPL-2.1-or-later - -#ifndef QXMPPGLOBAL_H -#define QXMPPGLOBAL_H - -#include - -#define QXMPP_BUILD_SHARED @QXMPP_BUILD_SHARED@ - -#if QXMPP_BUILD_SHARED -# if defined(QXMPP_BUILD) -# define QXMPP_EXPORT Q_DECL_EXPORT -# else -# define QXMPP_EXPORT Q_DECL_IMPORT -# endif -#else -# define QXMPP_EXPORT -#endif - -#define QXMPP_AUTOTEST_EXPORT - -/// -/// This macro expands a numeric value of the form 0xMMNNPP (MM = -/// major, NN = minor, PP = patch) that specifies QXmpp's version -/// number. For example, if you compile your application against -/// QXmpp 1.2.3, the QXMPP_VERSION macro will expand to 0x010203. -/// -/// You can use QXMPP_VERSION to use the latest QXmpp features where -/// available. -/// -#define QXMPP_VERSION QT_VERSION_CHECK(@PROJECT_VERSION_MAJOR@, @PROJECT_VERSION_MINOR@, @PROJECT_VERSION_PATCH@) - -/// -/// Returns the version of QXmpp used at compile time as a string. -/// -inline QLatin1String QXmppVersion() -{ - return QLatin1String("@PROJECT_VERSION@"); -} - -// This sets which deprecated functions should still be usable -// It works exactly like QT_DISABLE_DEPRECATED_BEFORE -#ifndef QXMPP_DISABLE_DEPRECATED_BEFORE -# define QXMPP_DISABLE_DEPRECATED_BEFORE 0x0 -#endif - -// This works exactly like QT_DEPRECATED_SINCE, but checks QXMPP_DISABLE_DEPRECATED_BEFORE instead. -#define QXMPP_DEPRECATED_SINCE(major, minor) (QT_VERSION_CHECK(major, minor, 0) > QXMPP_DISABLE_DEPRECATED_BEFORE) - -// workaround for Qt < 5.12 -#ifndef Q_DECL_ENUMERATOR_DEPRECATED_X -#define Q_DECL_ENUMERATOR_DEPRECATED_X(msg) -#endif - -#ifndef QT_WARNING_DISABLE_DEPRECATED -#define QT_WARNING_DISABLE_DEPRECATED -#endif - -/// -/// \namespace QXmpp -/// -/// Contains global functions and enumerations. -/// -/// \since QXmpp 1.5 -/// -namespace QXmpp { - -/// -/// Parsing/serialization mode when using Stanza Content Encryption. -/// -/// \sa \xep{0420, Stanza Content Encryption} -/// -/// \since QXmpp 1.5 -/// -enum SceMode : uint8_t { - SceAll, ///< Processes all known elements. - ScePublic, ///< Only processes 'public' elements (e.g. needed for routing). - SceSensitive, ///< Only processes sensitive elements that should be encrypted. -}; - -/// -/// Checks whether a mode is enabled. -/// -/// When an SceMode is given you can use this to check whether Public or Private -/// elements are enabled. -/// -/// \since QXmpp 1.5 -/// -inline constexpr bool operator&(SceMode mode1, SceMode mode2) -{ - return mode1 == SceAll || mode1 == mode2; -} - -/// -/// An empty struct indicating success in results. -/// -/// \since QXmpp 1.5 -/// -struct Success -{ -}; - -} - -#endif // QXMPPGLOBAL_H -- cgit v1.2.3