Files
FreeCADWasmDev/docs/web-dependency-install.md
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

58 lines
2.1 KiB
Markdown

# FreeCAD Web Dependency Install Report
## Scope
This report records the `FW-P0-006` target dependency installations and the
FreeCAD CMake lookup boundary. The desktop `find_package` path remains
unchanged; the `FREECAD_WEB` branch forces all target headers and static
archives into `build-web` prefixes.
## Installed prefixes
| Dependency | Prefix | Validation |
|---|---|---|
| yaml-cpp 0.8.0 | `build-web/yaml-install` | CMake config, static archive, wasm dependency probe |
| Qt 5.15.13 | `build-web/qt-install` | Qt5/Core, Network, Xml configs and static archives |
| CPython 3.12.3 | `build-web/python-install` | `Python.h`, `libpython3.12.a`, wasm SOABI |
| ICU 68.2 | `build-web/icu-install` | `unicode/utypes.h`, `libicuuc.a`, `libicui18n.a`, `libicudata.a` |
The ICU libraries are generated by the Emscripten 3.1.6 port and installed
with the names expected by CMake's `FindICU.cmake`. Representative archive
members are WebAssembly objects.
## Download policy
ICU uses the domestic Aliyun BLFS mirror first:
```text
https://mirrors.aliyun.com/blfs/conglomeration/icu/icu4c-68_2-src.tgz
SHA-512: 24f3b7981667b37df58118f56ae76a09b719358c1efa8d6f044d28ef8df1c722a894957acadfb3c37aee39ac845893924fc3370d6bbe09875aec8d937059f84b
```
The Emscripten GitHub URL is retained only as a verified fallback. The
preparation script seeds the local Emscripten port cache, so a normal rerun
does not access GitHub after the domestic archive is present.
## CMake validation
`cmake --preset freecad-web-core` resolves ICU 68.2, Python 3.12.3, Qt 5.15.13
and yaml-cpp from `build-web`. The configure now stops at the next genuine
unprepared target dependency:
```text
Failed to find XercesC (missing: XercesC_LIBRARY XercesC_INCLUDE_DIR XercesC_VERSION)
```
This is recorded as the `FW-P0-007` boundary; it is not treated as a passing
full-core configure.
## Probe result
The standalone Emscripten dependency probe links the yaml-cpp, Qt and CPython
package families and runs under Node. ICU is validated separately through its
wasm archive members:
```text
yaml-cpp=0.8.0 Qt=5.15.13 Python=3.12.3
```