Add CAM and Cloud WebAssembly probes
Some checks failed
FreeCAD master CI / Prepare (push) Has been cancelled
FreeCAD master CI / Pixi (push) Has been cancelled
FreeCAD master CI / Ubuntu (push) Has been cancelled
FreeCAD master CI / Windows (push) Has been cancelled
FreeCAD master CI / Lint (push) Has been cancelled
FreeCAD master CI / WrapUp (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
Stale Issues / stale (push) Has been cancelled

This commit is contained in:
2026-08-21 06:51:31 +08:00
parent b5a086fda5
commit c87b2871be
23 changed files with 2865 additions and 15 deletions

View File

@@ -55,6 +55,8 @@ project(FreeCAD)
# block narrows the module graph to the first native-kernel probe.
option(FREECAD_WEB "Build the FreeCAD WebAssembly core configuration" OFF)
option(FREECAD_WEB_ENABLE_ASSEMBLY "Enable the Assembly Web probe and its dependency closure" OFF)
option(FREECAD_WEB_ENABLE_CAM "Enable the CAM Path App Web probe and its dependency closure" OFF)
option(FREECAD_WEB_ENABLE_CLOUD "Enable the Cloud App Web probe and its dependency closure" OFF)
if(FREECAD_WEB)
if(NOT EMSCRIPTEN OR NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
message(FATAL_ERROR
@@ -108,6 +110,14 @@ if(FREECAD_WEB)
list(REMOVE_ITEM _freecad_web_disabled_options
BUILD_ASSEMBLY BUILD_SPREADSHEET BUILD_DRAFT BUILD_TECHDRAW)
endif()
if(FREECAD_WEB_ENABLE_CAM)
# CAM's Path App target is GUI-free, but its build graph requires Mesh
# in addition to the existing Part and Import Web modules.
list(REMOVE_ITEM _freecad_web_disabled_options BUILD_CAM BUILD_MESH)
endif()
if(FREECAD_WEB_ENABLE_CLOUD)
list(REMOVE_ITEM _freecad_web_disabled_options BUILD_CLOUD)
endif()
foreach(_freecad_web_disabled_option IN LISTS _freecad_web_disabled_options)
set(${_freecad_web_disabled_option} OFF CACHE BOOL "Disabled by FREECAD_WEB core configuration" FORCE)
endforeach()
@@ -121,6 +131,14 @@ if(FREECAD_WEB)
set(${_freecad_web_assembly_option} ON CACHE BOOL "Enabled by FREECAD_WEB_ENABLE_ASSEMBLY" FORCE)
endforeach()
endif()
if(FREECAD_WEB_ENABLE_CAM)
foreach(_freecad_web_cam_option BUILD_CAM BUILD_MESH)
set(${_freecad_web_cam_option} ON CACHE BOOL "Enabled by FREECAD_WEB_ENABLE_CAM" FORCE)
endforeach()
endif()
if(FREECAD_WEB_ENABLE_CLOUD)
set(BUILD_CLOUD ON CACHE BOOL "Enabled by FREECAD_WEB_ENABLE_CLOUD" FORCE)
endif()
include(cMake/FreeCADWebDependencies.cmake)
endif()