接续上一轮:推进浏览器验证与M428配置收拢
结论:已完成浏览器侧真实加载验证,M428/M429/M430 的配置入口进一步从 LinuxCNC INI/HALFILE/REMAP 来源生成,native 与 source-link 验证通过。
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
project(cnc_sim_wasm_core LANGUAGES CXX)
|
||||
project(cnc_sim_wasm_core LANGUAGES C CXX)
|
||||
|
||||
option(CNC_SIM_ENABLE_LINUXCNC_BRIDGE "Build the experimental LinuxCNC canon bridge" OFF)
|
||||
option(CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND "Build the native LinuxCNC librs274 backend" OFF)
|
||||
option(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE "Compile the browser-safe subset of LinuxCNC rs274 sources" OFF)
|
||||
option(CNC_SIM_ENABLE_SMOKE_BACKEND "Build the legacy explicit smoke G-code backend test harness" OFF)
|
||||
set(CNC_SIM_LINUXCNC_ROOT "" CACHE PATH "LinuxCNC source root for the experimental bridge")
|
||||
set(CNC_SIM_LINUXCNC_WASM_SOURCE_MANIFEST
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../linuxcnc-rs274-wasm-source-files.txt"
|
||||
@@ -15,23 +16,71 @@ set(cnc_sim_core_sources
|
||||
src/canon_event_sink.cpp
|
||||
src/cnc_sim_api.cpp
|
||||
src/gcode_backend.cpp
|
||||
src/linuxcnc_5axiskins_adapter.c
|
||||
src/linuxcnc_5axiskins_adapter.cpp
|
||||
src/linuxcnc_corexykins_adapter.c
|
||||
src/linuxcnc_corexykins_adapter.cpp
|
||||
src/linuxcnc_cubic_adapter.c
|
||||
src/linuxcnc_cubic_adapter.cpp
|
||||
src/linuxcnc_genserfuncs_adapter.c
|
||||
src/linuxcnc_genserfuncs_adapter.cpp
|
||||
src/linuxcnc_genhexkins_adapter.c
|
||||
src/linuxcnc_genhexkins_adapter.cpp
|
||||
src/linuxcnc_kins_util_adapter.c
|
||||
src/linuxcnc_kins_util_adapter.cpp
|
||||
src/linuxcnc_lineardeltakins_adapter.c
|
||||
src/linuxcnc_lineardeltakins_adapter.cpp
|
||||
src/linuxcnc_maxkins_adapter.c
|
||||
src/linuxcnc_maxkins_adapter.cpp
|
||||
src/linuxcnc_pentakins_adapter.c
|
||||
src/linuxcnc_pentakins_adapter.cpp
|
||||
src/linuxcnc_pumakins_adapter.c
|
||||
src/linuxcnc_pumakins_adapter.cpp
|
||||
src/linuxcnc_rotatekins_adapter.c
|
||||
src/linuxcnc_rotatekins_adapter.cpp
|
||||
src/linuxcnc_rosekins_adapter.c
|
||||
src/linuxcnc_rosekins_adapter.cpp
|
||||
src/linuxcnc_rotarydeltakins_adapter.c
|
||||
src/linuxcnc_rotarydeltakins_adapter.cpp
|
||||
src/linuxcnc_scarakins_adapter.c
|
||||
src/linuxcnc_scarakins_adapter.cpp
|
||||
src/linuxcnc_scorbot_kins_adapter.c
|
||||
src/linuxcnc_scorbot_kins_adapter.cpp
|
||||
src/linuxcnc_tripodkins_adapter.c
|
||||
src/linuxcnc_tripodkins_adapter.cpp
|
||||
src/linuxcnc_trtfuncs_adapter.c
|
||||
src/linuxcnc_trtfuncs_adapter.cpp
|
||||
src/linuxcnc_userkfuncs_adapter.c
|
||||
src/linuxcnc_userkfuncs_adapter.cpp
|
||||
src/linuxcnc_xyzab_tdr_kins_adapter.c
|
||||
src/linuxcnc_xyzab_tdr_kins_adapter.cpp
|
||||
src/rtcp_kinematics.cpp
|
||||
src/simulator_gcode_controls.cpp
|
||||
)
|
||||
|
||||
set(cnc_sim_smoke_backend_sources
|
||||
src/smoke_gcode_parser.cpp
|
||||
)
|
||||
|
||||
set(cnc_sim_linuxcnc_rs274_backend_sources
|
||||
src/linuxcnc_canon_bridge.cpp
|
||||
src/linuxcnc_rs274_backend.cpp
|
||||
src/linuxcnc_tooldata_fixture.cpp
|
||||
)
|
||||
|
||||
if(CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND)
|
||||
if(CNC_SIM_ENABLE_SMOKE_BACKEND)
|
||||
message(FATAL_ERROR "CNC_SIM_ENABLE_SMOKE_BACKEND cannot be combined with CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND")
|
||||
endif()
|
||||
if(EMSCRIPTEN)
|
||||
message(FATAL_ERROR "CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND is native-only; it links LinuxCNC librs274")
|
||||
endif()
|
||||
if(NOT CNC_SIM_LINUXCNC_ROOT)
|
||||
message(FATAL_ERROR "Set CNC_SIM_LINUXCNC_ROOT to the LinuxCNC source root")
|
||||
endif()
|
||||
list(APPEND cnc_sim_core_sources
|
||||
src/linuxcnc_canon_bridge.cpp
|
||||
src/linuxcnc_rs274_backend.cpp
|
||||
src/linuxcnc_tooldata_fixture.cpp
|
||||
)
|
||||
list(APPEND cnc_sim_core_sources ${cnc_sim_linuxcnc_rs274_backend_sources})
|
||||
elseif(CNC_SIM_ENABLE_SMOKE_BACKEND)
|
||||
list(APPEND cnc_sim_core_sources ${cnc_sim_smoke_backend_sources})
|
||||
endif()
|
||||
|
||||
if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
@@ -67,7 +116,11 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
|
||||
set(manifest_group "${CMAKE_MATCH_1}")
|
||||
set(manifest_path "${CMAKE_MATCH_2}")
|
||||
if(NOT manifest_group STREQUAL "core" AND NOT manifest_group STREQUAL "blocked")
|
||||
if(NOT manifest_group STREQUAL "core"
|
||||
AND NOT manifest_group STREQUAL "blocked"
|
||||
AND NOT manifest_group STREQUAL "header"
|
||||
AND NOT manifest_group STREQUAL "metadata"
|
||||
AND NOT manifest_group STREQUAL "blocked-header")
|
||||
message(FATAL_ERROR "Unknown LinuxCNC wasm source manifest group: ${manifest_group}")
|
||||
endif()
|
||||
|
||||
@@ -81,7 +134,7 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
|
||||
if(manifest_group STREQUAL "core")
|
||||
list(APPEND linuxcnc_wasm_safe_probe_sources "${manifest_source}")
|
||||
else()
|
||||
elseif(manifest_group STREQUAL "blocked")
|
||||
list(APPEND linuxcnc_wasm_blocked_sources "${manifest_source}")
|
||||
endif()
|
||||
endforeach()
|
||||
@@ -97,6 +150,17 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
message(STATUS "LinuxCNC wasm-safe core sources: ${linuxcnc_wasm_safe_probe_source_count}")
|
||||
message(STATUS "LinuxCNC wasm blocked sources: ${linuxcnc_wasm_blocked_source_count}")
|
||||
|
||||
set(cnc_sim_wasm_safe_preinclude_options "SHELL:-include wctype.h")
|
||||
if(EMSCRIPTEN)
|
||||
list(APPEND cnc_sim_wasm_safe_preinclude_options "SHELL:-include libgen.h")
|
||||
find_path(CNC_SIM_FMT_INCLUDE_DIR fmt/format.h
|
||||
PATHS /usr/include /usr/local/include
|
||||
NO_CMAKE_FIND_ROOT_PATH
|
||||
REQUIRED
|
||||
)
|
||||
list(APPEND cnc_sim_wasm_safe_preinclude_options "SHELL:-idirafter ${CNC_SIM_FMT_INCLUDE_DIR}")
|
||||
endif()
|
||||
|
||||
set(linuxcnc_wasm_safe_probe_shims
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/dlfcn.cc
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/emc_status_shim.cc
|
||||
@@ -115,7 +179,7 @@ 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 -include wctype.h)
|
||||
target_compile_options(linuxcnc_rs274_wasm_safe_probe_objects PRIVATE ${cnc_sim_wasm_safe_preinclude_options})
|
||||
target_include_directories(linuxcnc_rs274_wasm_safe_probe_objects
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
@@ -128,12 +192,55 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/motion
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/include
|
||||
)
|
||||
if(EMSCRIPTEN)
|
||||
target_compile_definitions(linuxcnc_rs274_wasm_safe_probe_objects PRIVATE FMT_HEADER_ONLY=1)
|
||||
endif()
|
||||
|
||||
set(linuxcnc_rs274_wasm_safe_probe_project_sources
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/canon_event_sink.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_canon_bridge.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_rs274_backend.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_tooldata_fixture.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_5axiskins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_5axiskins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_corexykins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_corexykins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_cubic_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_cubic_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_genserfuncs_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_genserfuncs_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_genhexkins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_genhexkins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_kins_util_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_kins_util_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_lineardeltakins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_lineardeltakins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_maxkins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_maxkins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_pentakins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_pentakins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_pumakins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_pumakins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_rotatekins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_rotatekins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_rosekins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_rosekins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_rotarydeltakins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_rotarydeltakins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_scarakins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_scarakins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_scorbot_kins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_scorbot_kins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_tripodkins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_tripodkins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_trtfuncs_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_trtfuncs_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_userkfuncs_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_userkfuncs_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_xyzab_tdr_kins_adapter.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/linuxcnc_xyzab_tdr_kins_adapter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/rtcp_kinematics.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/simulator_gcode_controls.cpp
|
||||
)
|
||||
|
||||
add_executable(linuxcnc_rs274_wasm_safe_probe EXCLUDE_FROM_ALL
|
||||
@@ -142,8 +249,13 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/rs274ngc_pre_probe_main.cc
|
||||
)
|
||||
target_compile_features(linuxcnc_rs274_wasm_safe_probe PRIVATE cxx_std_20)
|
||||
target_compile_definitions(linuxcnc_rs274_wasm_safe_probe PRIVATE ULAPI)
|
||||
target_compile_options(linuxcnc_rs274_wasm_safe_probe PRIVATE -include wctype.h)
|
||||
target_compile_definitions(linuxcnc_rs274_wasm_safe_probe
|
||||
PRIVATE
|
||||
CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND
|
||||
CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE
|
||||
ULAPI
|
||||
)
|
||||
target_compile_options(linuxcnc_rs274_wasm_safe_probe PRIVATE ${cnc_sim_wasm_safe_preinclude_options})
|
||||
target_include_directories(linuxcnc_rs274_wasm_safe_probe
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
@@ -156,7 +268,15 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/motion
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/include
|
||||
)
|
||||
target_link_libraries(linuxcnc_rs274_wasm_safe_probe PRIVATE fmt)
|
||||
if(EMSCRIPTEN)
|
||||
target_compile_definitions(linuxcnc_rs274_wasm_safe_probe PRIVATE FMT_HEADER_ONLY=1)
|
||||
else()
|
||||
target_link_libraries(linuxcnc_rs274_wasm_safe_probe PRIVATE fmt)
|
||||
endif()
|
||||
|
||||
set(cnc_sim_wasm_runtime_probe_main
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims/cnc_sim_wasm_runtime_probe_main.cc
|
||||
)
|
||||
|
||||
if(linuxcnc_wasm_blocked_sources)
|
||||
add_custom_target(linuxcnc_rs274_wasm_blocked_sources
|
||||
@@ -165,6 +285,10 @@ if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
list(APPEND cnc_sim_core_sources ${cnc_sim_linuxcnc_rs274_backend_sources})
|
||||
endif()
|
||||
|
||||
add_library(cnc_sim_objects OBJECT
|
||||
${cnc_sim_core_sources}
|
||||
)
|
||||
@@ -174,9 +298,36 @@ target_include_directories(cnc_sim_objects
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../linuxcnc/include
|
||||
)
|
||||
|
||||
target_compile_features(cnc_sim_objects PUBLIC cxx_std_17)
|
||||
set(cnc_sim_linuxcnc_kinematics_c_sources
|
||||
src/linuxcnc_5axiskins_adapter.c
|
||||
src/linuxcnc_corexykins_adapter.c
|
||||
src/linuxcnc_cubic_adapter.c
|
||||
src/linuxcnc_genserfuncs_adapter.c
|
||||
src/linuxcnc_genhexkins_adapter.c
|
||||
src/linuxcnc_kins_util_adapter.c
|
||||
src/linuxcnc_lineardeltakins_adapter.c
|
||||
src/linuxcnc_maxkins_adapter.c
|
||||
src/linuxcnc_pentakins_adapter.c
|
||||
src/linuxcnc_pumakins_adapter.c
|
||||
src/linuxcnc_rotatekins_adapter.c
|
||||
src/linuxcnc_rosekins_adapter.c
|
||||
src/linuxcnc_rotarydeltakins_adapter.c
|
||||
src/linuxcnc_scarakins_adapter.c
|
||||
src/linuxcnc_scorbot_kins_adapter.c
|
||||
src/linuxcnc_tripodkins_adapter.c
|
||||
src/linuxcnc_trtfuncs_adapter.c
|
||||
src/linuxcnc_userkfuncs_adapter.c
|
||||
src/linuxcnc_xyzab_tdr_kins_adapter.c
|
||||
)
|
||||
set_source_files_properties(
|
||||
${cnc_sim_linuxcnc_kinematics_c_sources}
|
||||
PROPERTIES
|
||||
COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:CXX>:-fpermissive>"
|
||||
)
|
||||
|
||||
if(CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND)
|
||||
find_package(Python3 REQUIRED COMPONENTS Development)
|
||||
@@ -196,6 +347,64 @@ if(CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND)
|
||||
)
|
||||
endif()
|
||||
|
||||
if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
target_compile_definitions(cnc_sim_objects
|
||||
PRIVATE
|
||||
CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND
|
||||
CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE
|
||||
ULAPI
|
||||
)
|
||||
target_compile_options(cnc_sim_objects PRIVATE ${cnc_sim_wasm_safe_preinclude_options})
|
||||
target_include_directories(cnc_sim_objects
|
||||
PRIVATE
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/nml_intf
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/rs274ngc
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/motion
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims
|
||||
)
|
||||
if(EMSCRIPTEN)
|
||||
target_compile_definitions(cnc_sim_objects PRIVATE FMT_HEADER_ONLY=1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
add_executable(cnc_sim_wasm_runtime_probe EXCLUDE_FROM_ALL
|
||||
$<TARGET_OBJECTS:linuxcnc_rs274_wasm_safe_probe_objects>
|
||||
$<TARGET_OBJECTS:cnc_sim_objects>
|
||||
${cnc_sim_wasm_runtime_probe_main}
|
||||
)
|
||||
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_include_directories(cnc_sim_wasm_runtime_probe
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/nml_intf
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/rs274ngc
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/motion
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/include
|
||||
)
|
||||
if(EMSCRIPTEN)
|
||||
target_compile_definitions(cnc_sim_wasm_runtime_probe PRIVATE FMT_HEADER_ONLY=1)
|
||||
else()
|
||||
target_link_libraries(cnc_sim_wasm_runtime_probe PRIVATE fmt)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CNC_SIM_ENABLE_SMOKE_BACKEND)
|
||||
target_compile_definitions(cnc_sim_objects
|
||||
PRIVATE
|
||||
CNC_SIM_ENABLE_SMOKE_BACKEND
|
||||
)
|
||||
endif()
|
||||
|
||||
add_library(cnc_sim_core STATIC
|
||||
$<TARGET_OBJECTS:cnc_sim_objects>
|
||||
)
|
||||
@@ -225,11 +434,13 @@ if(CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND)
|
||||
endif()
|
||||
|
||||
if(NOT EMSCRIPTEN)
|
||||
if(CNC_SIM_ENABLE_SMOKE_BACKEND)
|
||||
add_executable(cnc_sim_api_smoke
|
||||
tests/cnc_sim_api_smoke.cpp
|
||||
)
|
||||
target_link_libraries(cnc_sim_api_smoke PRIVATE cnc_sim_core)
|
||||
target_include_directories(cnc_sim_api_smoke PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
endif()
|
||||
|
||||
add_executable(canon_event_sink_smoke
|
||||
tests/canon_event_sink_smoke.cpp
|
||||
@@ -254,11 +465,13 @@ if(NOT EMSCRIPTEN)
|
||||
target_link_libraries(simulator_gcode_controls_smoke PRIVATE cnc_sim_core)
|
||||
target_include_directories(simulator_gcode_controls_smoke PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
|
||||
if(CNC_SIM_ENABLE_SMOKE_BACKEND)
|
||||
add_executable(cnc_sim_dump
|
||||
tools/cnc_sim_dump.cpp
|
||||
)
|
||||
target_link_libraries(cnc_sim_dump PRIVATE cnc_sim_core)
|
||||
target_include_directories(cnc_sim_dump PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
endif()
|
||||
|
||||
if(CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND)
|
||||
add_executable(cnc_sim_api_linuxcnc_rs274_smoke
|
||||
@@ -298,7 +511,11 @@ if(CNC_SIM_ENABLE_LINUXCNC_BRIDGE)
|
||||
endif()
|
||||
|
||||
if(EMSCRIPTEN)
|
||||
if(NOT CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)
|
||||
message(FATAL_ERROR "WASM builds must enable CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE so LinuxCNC rs274 sources are linked")
|
||||
endif()
|
||||
add_executable(cnc_sim_wasm
|
||||
$<TARGET_OBJECTS:linuxcnc_rs274_wasm_safe_probe_objects>
|
||||
$<TARGET_OBJECTS:cnc_sim_objects>
|
||||
)
|
||||
|
||||
@@ -306,7 +523,15 @@ if(EMSCRIPTEN)
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/wasm_shims
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/nml_intf
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/rs274ngc
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/src/emc/motion
|
||||
${CNC_SIM_LINUXCNC_ROOT_ABS}/include
|
||||
)
|
||||
target_compile_definitions(cnc_sim_wasm PRIVATE FMT_HEADER_ONLY=1)
|
||||
|
||||
set_target_properties(cnc_sim_wasm PROPERTIES
|
||||
OUTPUT_NAME "cnc_sim"
|
||||
|
||||
Reference in New Issue
Block a user