QLibraryInfo: Add isSharedBuild() function and deprecate qSharedBuild()

Now that there's QLibraryInfo::isDebugBuild(), it's better to also
have QLibraryInfo::isSharedBuild() at the same time. It's also a
very useful information about the current Qt build.
I think debug/release and static/shared are the most important
properties of a library, so it's better to have them both.

Deprecate the global function qSharedBuild() in favor of the newly
introduced QLibraryInfo::isSharedBuild().

As a drive-by, add the nodiscard attribute to both functions.

[ChangeLog][QtCore] Added QLibraryInfo::isSharedBuild() and deprecated
qSharedBuild().

Change-Id: I48fa0dc5eeca97e709d5267733fa70aae244174f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Yuhang Zhao 2022-08-22 09:57:24 +08:00
parent 56c4d183ec
commit 22662d7dba
3 changed files with 39 additions and 6 deletions

View File

@ -235,6 +235,19 @@ QLibraryInfo::isDebugBuild() noexcept
#endif
}
/*!
\since 6.5
Returns \c true if this is a shared (dynamic) build of Qt.
*/
bool QLibraryInfo::isSharedBuild() noexcept
{
#ifdef QT_SHARED
return true;
#else
return false;
#endif
}
/*!
\since 5.8
Returns the version of the Qt library.
@ -646,15 +659,15 @@ QStringList QLibraryInfo::platformPluginArguments(const QString &platformName)
\deprecated Use LibraryPath with QLibraryInfo::path() instead.
*/
#if QT_DEPRECATED_SINCE(6, 9)
bool qSharedBuild() noexcept
{
#ifdef QT_SHARED
return true;
#else
return false;
#endif
return QLibraryInfo::isSharedBuild();
}
#endif // QT_DEPRECATED_SINCE(6, 9)
QT_END_NAMESPACE
#if defined(Q_CC_GNU) && defined(ELF_INTERPRETER)

View File

@ -15,7 +15,8 @@ class Q_CORE_EXPORT QLibraryInfo
public:
static const char *build() noexcept;
static bool isDebugBuild() noexcept Q_DECL_CONST_FUNCTION;
[[nodiscard]] static bool isDebugBuild() noexcept Q_DECL_CONST_FUNCTION;
[[nodiscard]] static bool isSharedBuild() noexcept Q_DECL_CONST_FUNCTION;
#ifndef QT_BOOTSTRAPPED
static QVersionNumber version() noexcept Q_DECL_CONST_FUNCTION;
@ -53,8 +54,13 @@ private:
QLibraryInfo();
};
#if QT_DEPRECATED_SINCE(6, 9)
QT_DEPRECATED_VERSION_X_6_9("Use QLibraryInfo::isSharedBuild() instead.")
Q_CORE_EXPORT Q_DECL_CONST_FUNCTION bool qSharedBuild() noexcept;
#endif
QT_END_NAMESPACE
#endif // QLIBRARYINFO_H

View File

@ -187,6 +187,14 @@ QT_BEGIN_NAMESPACE
# define QT_DEPRECATED_VERSION_6_8
#endif
#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 9, 0)
# define QT_DEPRECATED_VERSION_X_6_9(text) QT_DEPRECATED_X(text)
# define QT_DEPRECATED_VERSION_6_9 QT_DEPRECATED
#else
# define QT_DEPRECATED_VERSION_X_6_9(text)
# define QT_DEPRECATED_VERSION_6_9
#endif
#define QT_DEPRECATED_VERSION_X_5(minor, text) QT_DEPRECATED_VERSION_X_5_##minor(text)
#define QT_DEPRECATED_VERSION_X(major, minor, text) QT_DEPRECATED_VERSION_X_##major##_##minor(text)
@ -277,6 +285,12 @@ QT_BEGIN_NAMESPACE
# define QT_IF_DEPRECATED_SINCE_6_8(whenTrue, whenFalse) whenTrue
#endif
#if QT_DEPRECATED_SINCE(6, 9)
# define QT_IF_DEPRECATED_SINCE_6_9(whenTrue, whenFalse) whenFalse
#else
# define QT_IF_DEPRECATED_SINCE_6_9(whenTrue, whenFalse) whenTrue
#endif
#ifdef __cplusplus
// A tag to help mark stuff deprecated (cf. QStringViewLiteral)
namespace QtPrivate {