Martchus
8348648c56
Otherwise the shared build with targeting x86_64-w64-mingw32 fails with: ``` FAILED: widgets/syncthingwidgets-qt6.dll widgets/libsyncthingwidgets-qt6.dll.a : && /usr/lib/ccache/bin/x86_64-w64-mingw32-g++ -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fcf-protection -O3 -DNDEBUG -Wl,-O1,--sort-common,--as-needed -fstack-protector -shared -o widgets/syncthingwidgets-qt6.dll -Wl,--out-implib,widgets/libsyncthingwidgets-qt6.dll.a -Wl,--major-image-version,1,--minor-image-version,1 widgets/CMakeFiles/syncthingwidgets-qt6.dir/syncthingwidgets-qt6_autogen/mocs_compilation.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/settings/settings.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/settings/settingsdialog.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/webview/webpage.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/webview/webviewdialog.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/webview/webviewinterceptor.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/textviewdialog.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/internalerrorsdialog.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/direrrorsdialog.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/statusinfo.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/dbusstatusnotifier.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/internalerror.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/otherdialogs.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/syncthinglauncher.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/syncthingkiller.cpp.obj widgets/CMakeFiles/syncthingwidgets-qt6.dir/resources/windows-Release.rc.res widgets/CMakeFiles/syncthingwidgets-qt6.dir/syncthingwidgets-qt6_autogen/3YJK5W5UP7/qrc_syncthingwidgetsicons.cpp.obj -L/build/mingw-w64-syncthingtray-qt6/src/syncthingtray/build-x86_64-w64-mingw32-shared/connector -L/build/mingw-w64-syncthingtray-qt6/src/syncthingtray/build-x86_64-w64-mingw32-shared/model -L/build/mingw-w64-syncthingtray-qt6/src/lib model/libsyncthingmodel-qt6.dll.a /usr/x86_64-w64-mingw32/lib/libqtutilities-qt6.dll.a libsyncthing/libsyncthing-qt6.dll.a /usr/x86_64-w64-mingw32/lib/libQt6Network.dll.a /usr/x86_64-w64-mingw32/lib/libQt6Concurrent.dll.a connector/libsyncthingconnector-qt6.dll.a /usr/x86_64-w64-mingw32/lib/libc++utilities.dll.a /usr/x86_64-w64-mingw32/lib/libQt6Network.dll.a /usr/x86_64-w64-mingw32/lib/libQt6Core.dll.a /usr/x86_64-w64-mingw32/lib/libqtforkawesome-qt6.dll.a /usr/x86_64-w64-mingw32/lib/libQt6Widgets.dll.a /usr/x86_64-w64-mingw32/lib/libQt6Gui.dll.a /usr/x86_64-w64-mingw32/lib/libQt6Core.dll.a /usr/x86_64-w64-mingw32/lib/libc++utilities.dll.a /usr/x86_64-w64-mingw32/lib/libQt6Widgets.dll.a /usr/x86_64-w64-mingw32/lib/libQt6Gui.dll.a -ld3d11 -ldxgi -ldxguid -lws2_32 /usr/x86_64-w64-mingw32/lib/libQt6Core.dll.a -lmpr -luserenv -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && : /usr/lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld: widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/internalerror.cpp.obj:internalerror.cpp:(.text+0x1a0): multiple definition of `QtGui::InternalError::InternalError(QString const&, QUrl const&, QByteArray const&)'; widgets/CMakeFiles/syncthingwidgets-qt6.dir/syncthingwidgets-qt6_autogen/mocs_compilation.cpp.obj:mocs_compilation.cpp:(.text$_ZN5QtGui13InternalErrorC2ERK7QStringRK4QUrlRK10QByteArray[_ZN5QtGui13InternalErrorC2ERK7QStringRK4QUrlRK10QByteArray]+0x0): first defined here /usr/lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld: widgets/CMakeFiles/syncthingwidgets-qt6.dir/misc/internalerror.cpp.obj:internalerror.cpp:(.text+0x1a0): multiple definition of `QtGui::InternalError::InternalError(QString const&, QUrl const&, QByteArray const&)'; widgets/CMakeFiles/syncthingwidgets-qt6.dir/syncthingwidgets-qt6_autogen/mocs_compilation.cpp.obj:mocs_compilation.cpp:(.text$_ZN5QtGui13InternalErrorC1ERK7QStringRK4QUrlRK10QByteArray[_ZN5QtGui13InternalErrorC1ERK7QStringRK4QUrlRK10QByteArray]+0x0): first defined here ``` I can currently not make sense of this build error. It does not happen when targeting Linux or i686.
47 lines
1.2 KiB
C++
47 lines
1.2 KiB
C++
#ifndef SYNCTHINGWIDGETS_INTERNAL_ERROR_H
|
|
#define SYNCTHINGWIDGETS_INTERNAL_ERROR_H
|
|
|
|
#include "../global.h"
|
|
|
|
#include <c++utilities/chrono/datetime.h>
|
|
|
|
#include <QByteArray>
|
|
#include <QString>
|
|
#include <QUrl>
|
|
|
|
namespace Data {
|
|
class SyncthingConnection;
|
|
enum class SyncthingErrorCategory;
|
|
} // namespace Data
|
|
|
|
namespace QtGui {
|
|
|
|
struct SYNCTHINGWIDGETS_EXPORT InternalError {
|
|
explicit InternalError(const QString &message = QString(), const QUrl &url = QUrl(), const QByteArray &response = QByteArray());
|
|
|
|
static bool isRelevant(const Data::SyncthingConnection &connection, Data::SyncthingErrorCategory category, int networkError);
|
|
|
|
QString message;
|
|
QUrl url;
|
|
QByteArray response;
|
|
CppUtilities::DateTime when;
|
|
};
|
|
|
|
/*!
|
|
* \brief Constructs a new error suitable for display purposes (password in \a url is redacted).
|
|
*/
|
|
inline InternalError::InternalError(const QString &message, const QUrl &url, const QByteArray &response)
|
|
: message(message)
|
|
, url(url)
|
|
, response(response)
|
|
, when(CppUtilities::DateTime::now())
|
|
{
|
|
if (!this->url.password().isEmpty()) {
|
|
this->url.setPassword(QStringLiteral("redacted"));
|
|
}
|
|
}
|
|
|
|
} // namespace QtGui
|
|
|
|
#endif // SYNCTHINGWIDGETS_INTERNAL_ERROR_H
|