113 lines
5.4 KiB
JSON
113 lines
5.4 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"scope": "candidate-only-freecad-wasm-sdk-build",
|
|
"baseline": {
|
|
"freecadVersion": "1.1.1",
|
|
"sourceCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
|
"emscriptenVersion": "3.1.69",
|
|
"qtVersion": "6.8.2",
|
|
"target": "wasm32-emscripten"
|
|
},
|
|
"source": {
|
|
"path": ".cache/freecad/FreeCAD",
|
|
"mode": "detached-pinned-commit",
|
|
"requiredClean": true
|
|
},
|
|
"sourceOverlay": {
|
|
"path": ".cache/toolchains/freecad-naming-sdk/source-occt8",
|
|
"command": "npm run prepare:freecad-occt8-overlay",
|
|
"migration": "OCCT 8 migrate_raise_to_throw.py and replace_typedefs.py",
|
|
"productionPublication": false
|
|
},
|
|
"toolchain": {
|
|
"emscriptenRoot": "EMSDK",
|
|
"qtPrefix": ".cache/toolchains/qt6/install-wasm-freecad",
|
|
"cmakeGenerator": "Ninja"
|
|
},
|
|
"dependencyBuilds": [
|
|
{
|
|
"name": "Qt6",
|
|
"version": "6.8.2",
|
|
"command": "npm run build:qt6-freecad-wasm",
|
|
"targetArchives": ["QtCore", "QtConcurrent", "QtNetwork", "QtXml"]
|
|
},
|
|
{
|
|
"name": "yaml-cpp",
|
|
"version": "0.8.0",
|
|
"sourceCommit": "f7320141120f720aecc4c32be25586e7da9eb978",
|
|
"command": "npm run build:yaml-cpp-wasm",
|
|
"targetArchives": ["yaml-cpp"]
|
|
},
|
|
{
|
|
"name": "ICU",
|
|
"version": "68.2",
|
|
"sourceSha256": "c79193dee3907a2199b8296a93b52c5cb74332c26f3d167269487680d479d625",
|
|
"command": "npm run build:icu-wasm",
|
|
"targetArchives": ["icuuc", "icui18n", "icudata"]
|
|
},
|
|
{
|
|
"name": "CPython",
|
|
"version": "3.13.5",
|
|
"sourceSha256": "93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640",
|
|
"command": "npm run build:cpython-wasm",
|
|
"targetArchives": ["python3.13"]
|
|
},
|
|
{
|
|
"name": "Xerces-C",
|
|
"version": "3.2.4",
|
|
"sourceSha256": "075bc57940da0f9be6dd183c550c8ce0b9833e4550dc382048377a1a5e3b2bd9",
|
|
"command": "npm run build:xerces-c-wasm",
|
|
"targetArchives": ["xerces-c"]
|
|
},
|
|
{
|
|
"name": "Boost",
|
|
"version": "1.83.0",
|
|
"sourceSha256": "6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e",
|
|
"command": "npm run build:boost-wasm",
|
|
"targetArchives": ["boost_program_options", "boost_regex", "boost_thread", "boost_date_time", "boost_atomic"]
|
|
}
|
|
],
|
|
"configuration": {
|
|
"buildDirectory": ".cache/toolchains/freecad-naming-sdk/build-wasm",
|
|
"installDirectory": ".cache/toolchains/freecad-naming-sdk/install-wasm",
|
|
"buildType": "Release",
|
|
"buildGui": false,
|
|
"developerTests": false,
|
|
"python": "required",
|
|
"modules": ["Part"],
|
|
"productionPublication": false
|
|
},
|
|
"requiredArchives": [
|
|
"FreeCADBase",
|
|
"FreeCADApp",
|
|
"Part",
|
|
"Python"
|
|
],
|
|
"knownConfigurationLimits": [
|
|
"Qt Core/Concurrent/Network/Xml wasm archives are built locally with thread support for the candidate SDK.",
|
|
"yaml-cpp 0.8.0 is built as a wasm static archive for the required Material module.",
|
|
"CPython 3.13.5 development headers and its pthread-enabled wasm static archive are staged for the candidate SDK.",
|
|
"Xerces-C 3.2.4 is built as a wasm static archive against the staged ICU libraries.",
|
|
"The headless candidate omits Base/App Qt translation resources because Qt LinguistTools is not part of the target SDK.",
|
|
"Qt disables its timezone backend on WebAssembly; the candidate formats FreeCAD diagnostic timestamps in deterministic UTC.",
|
|
"FreeCAD's disabled Linux backtrace block still includes execinfo.h; a candidate-only empty header satisfies that unused include without exposing backtrace APIs.",
|
|
"OCCT 8.0 keeps FreeCAD 1.1.1's TopTools collection typedefs under Deprecated/NCollectionAliases; the candidate includes that pinned source compatibility directory explicitly.",
|
|
"OCCT 8.0 removed Standard_*::Raise; a disposable FreeCAD worktree overlay applies the pinned OCCT migrate_raise_to_throw.py phase without modifying the locked source checkout.",
|
|
"OCCT 8.0 folds legacy iterator typedefs into collection headers; the disposable overlay maps six removed include-only iterator headers after the official typedef migration.",
|
|
"OCCT 8.0 removes Standard_Failure RTTI; the disposable overlay replaces exception-only DynamicType calls with the documented ExceptionType API.",
|
|
"OCCT 8.0 removes BRepLProp_CurveTool; its parameter forwarding calls are mapped to BRepAdaptor_Curve's inherited FirstParameter and LastParameter methods.",
|
|
"OCCT 8.0 consolidates Geom2dLProp into GeomLProp; the overlay maps Geom2dLProp_CLProps2d to the signature-compatible GeomLProp_CLProps2d specialization.",
|
|
"OCCT 8.0 adds NCollection_List initializer-list construction; three ShapeMapper calls explicitly retain FreeCAD's original std::vector<TopoShape> overload.",
|
|
"OCCT 8.0 makes Standard_Failure a std::exception; three identical trailing handlers are removed after their std::exception handler to avoid unreachable exception paths.",
|
|
"FreeCAD declares Base/App/Part as SHARED; the candidate toolchain archives their wasm objects with emar and links dependencies separately.",
|
|
"The upstream FreeCAD CMake project currently creates shared libraries and requires a full wasm dependency graph; this plan does not treat a host build as a wasm SDK."
|
|
],
|
|
"boundary": {
|
|
"freecadNamingBuildStatus": "production-linked",
|
|
"exTsn02": "completed",
|
|
"systemExact": false,
|
|
"workerLinked": true,
|
|
"callbacks": ["freecadNamingAbiVersion", "freecadNamingCapabilitiesJson", "freecadNamingEvidenceJson"]
|
|
}
|
|
}
|