SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
Version.hpp
Go to the documentation of this file.
1
10#pragma once
11
12#include <QJsonObject>
13#include <QString>
14
16namespace OpenSWMM::Sdk
17{
18inline constexpr auto SDK_API_VERSION =
19 "1.9";
20inline constexpr auto GUI_EXTENSION_IID =
21 "io.opensimulator.openswmm.IGuiExtension/1.0";
22
25 QString guiVersion;
26 QString sdkApiVersion;
27 QString qtVersion;
28 QString compilerAbi;
29 QString engineVersion;
30 QString
32 QString arch;
33
36 QJsonObject toJson() const
37 {
38 return {{"guiVersion", guiVersion},
39 {"sdkApiVersion", sdkApiVersion},
40 {"qt", qtVersion},
41 {"compilerAbi", compilerAbi},
42 {"engineVersion", engineVersion},
43 {"engineAbiTag", engineAbiTag},
44 {"arch", arch}};
45 }
49 static CompatibilityManifest fromJson(const QJsonObject &j)
50 {
51 return {j["guiVersion"].toString(),
52 j["sdkApiVersion"].toString(),
53 j["qt"].toString(),
54 j["compilerAbi"].toString(),
55 j["engineVersion"].toString(),
56 j["engineAbiTag"].toString(),
57 j["arch"].toString()};
58 }
59};
60}
Public header-only ABI for independently compiled native GUI extensions.
Definition ExtensionHost.hpp:24
constexpr auto GUI_EXTENSION_IID
Qt plugin root IID.
Definition Version.hpp:20
constexpr auto SDK_API_VERSION
Public interface major/minor, independently of GUI version.
Definition Version.hpp:18
Definition Version.hpp:24
QString engineVersion
Engine product version associated with the host build.
Definition Version.hpp:29
QString sdkApiVersion
Interface major/minor version required by a plugin.
Definition Version.hpp:26
QJsonObject toJson() const
Encode the exact manifest field names embedded in plugin.json.
Definition Version.hpp:36
QString guiVersion
GUI product version used to build the SDK.
Definition Version.hpp:25
static CompatibilityManifest fromJson(const QJsonObject &j)
Read metadata without executing plugin code.
Definition Version.hpp:49
QString engineAbiTag
Engine-owned runtime ABI identity; older engines use a header fingerprint.
Definition Version.hpp:31
QString arch
Target architecture, including an explicit universal-architecture list.
Definition Version.hpp:32
QString qtVersion
Qt version; host requires matching major/minor.
Definition Version.hpp:27
QString compilerAbi
Conservative compiler/toolset and pointer-width identity.
Definition Version.hpp:28