Link wasm runtime status constructors

This commit is contained in:
cnc
2026-06-02 08:20:17 +08:00
parent dab7b9e2ef
commit ad7a461b3e
14 changed files with 137 additions and 12 deletions

View File

@@ -151,6 +151,8 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
message(STATUS "LinuxCNC wasm blocked sources: ${linuxcnc_wasm_blocked_source_count}")
set(cnc_sim_wasm_safe_preinclude_options "SHELL:-include wctype.h")
set(cnc_sim_wasm_safe_section_options -ffunction-sections -fdata-sections)
set(cnc_sim_wasm_safe_link_options "-Wl,--gc-sections")
if(EMSCRIPTEN)
list(APPEND cnc_sim_wasm_safe_preinclude_options "SHELL:-include libgen.h")
find_path(CNC_SIM_FMT_INCLUDE_DIR fmt/format.h
@@ -166,7 +168,9 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/emc_status_shim.cc
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/gettext_shim.cc
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/linuxcnc_runtime_shim.cc
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/nml_status_shim.cc
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/python_c_api_shim.cc
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/rcs_print_shim.cc
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/rtapi_compat.cc
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/tooldata/tooldata_mmap_backend.cc
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/tooldata/tooldata_runtime_stubs.cc
@@ -179,7 +183,10 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
)
target_compile_features(linuxcnc_rs274_wasm_safe_probe_objects PUBLIC cxx_std_20)
target_compile_definitions(linuxcnc_rs274_wasm_safe_probe_objects PRIVATE ULAPI)
target_compile_options(linuxcnc_rs274_wasm_safe_probe_objects PRIVATE ${cnc_sim_wasm_safe_preinclude_options})
target_compile_options(linuxcnc_rs274_wasm_safe_probe_objects PRIVATE
${cnc_sim_wasm_safe_preinclude_options}
${cnc_sim_wasm_safe_section_options}
)
target_include_directories(linuxcnc_rs274_wasm_safe_probe_objects
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
@@ -306,6 +313,7 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
ULAPI
)
target_compile_options(linuxcnc_rs274_wasm_safe_probe PRIVATE ${cnc_sim_wasm_safe_preinclude_options})
target_link_options(linuxcnc_rs274_wasm_safe_probe PRIVATE ${cnc_sim_wasm_safe_link_options})
target_include_directories(linuxcnc_rs274_wasm_safe_probe
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
@@ -332,6 +340,7 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
target_compile_features(cnc_sim_wasm_runtime_probe PRIVATE cxx_std_20)
target_compile_definitions(cnc_sim_wasm_runtime_probe PRIVATE ULAPI)
target_compile_options(cnc_sim_wasm_runtime_probe PRIVATE ${cnc_sim_wasm_safe_preinclude_options})
target_link_options(cnc_sim_wasm_runtime_probe PRIVATE ${cnc_sim_wasm_safe_link_options})
target_include_directories(cnc_sim_wasm_runtime_probe
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
@@ -492,6 +501,7 @@ if(EMSCRIPTEN)
)
target_link_options(cnc_sim_wasm PRIVATE
${cnc_sim_wasm_safe_link_options}
"--no-entry"
"-sMODULARIZE=1"
"-sEXPORT_NAME=createCncSimModule"