40#ifdef QT_BUILD_INTERNAL
42 if (!qEnvironmentVariableIsEmpty(
"QT_SIMULATE_DBUS_LIBFAIL"))
46 Q_CONSTINIT
static bool triedToLoadLibrary =
false;
47 Q_CONSTINIT
static QBasicMutex mutex;
48 const auto locker = qt_scoped_lock(mutex);
50 QLibrary *&lib = qdbus_libdbus;
51 if (triedToLoadLibrary)
52 return lib && lib->isLoaded();
55 lib->setLoadHints(QLibrary::ExportExternalSymbolsHint);
56 triedToLoadLibrary =
true;
58 static constexpr int majorversions[] = { 3, 2, -1 };
59 const QString baseNames[] = {
67 for (
const int majorversion : majorversions) {
68 for (
const QString &baseName : baseNames) {
71 if (majorversion != -1)
72 suffix = QString::number(- majorversion);
73 lib->setFileName(baseName + suffix);
75 lib->setFileNameAndVersion(baseName, majorversion);
77 if (lib->load() && lib->resolve(
"dbus_connection_open_private"))