{ "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 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"] } }