当前位置: 首页 > news >正文

chili3d调试笔记3 加入c++ 大模型对话方法 cmakelists精读

加入

#include <emscripten/bind.h>
#include <emscripten/val.h>

 

#include <nlohmann/json.hpp>

怎么加包

函数直接用emscripten::function,如:

emscripten::function("send_to_llm", &send_to_llm);
set (CMAKE_CXX_STANDARD 17)
set (TARGET chili-wasm)
set (CMAKE_CONFIGURATION_TYPES Debug;Release)
set (CMAKE_NINJA_FORCE_RESPONSE_FILE 1 CACHE INTERNAL "")

get_filename_component(SOURCE_ROOT_DIR ${CMAKE_SOURCE_DIR} DIRECTORY)
set(CMAKE_INSTALL_PREFIX "${SOURCE_ROOT_DIR}/packages/chili-wasm/lib")set (OcctToolkits# FoundationClassesTKernel TKMath# ModelingData TKG2d TKG3d TKGeomBase TKBRep# ModelingAlgorithmsTKGeomAlgo TKTopAlgo TKPrim TKBO TKBool TKHLR TKFillet TKOffset TKFeat TKMesh TKShHealing# VisualizationTKService TKV3d# ApplicationFrameworkTKCDF TKLCAF TKCAF TKStdL TKStd TKVCAF TKBin TKBinL TKBinXCAF# DataExchangeTKDE TKXSBase TKXCAF TKDESTEP TKDEIGES
)

set (OcctUsedPackages)
foreach(toolkit ${OcctToolkits})file (STRINGS build/occt/src/${toolkit}/PACKAGES OcctPackages)list (APPEND OcctUsedPackages ${OcctPackages})
endforeach()
list (REMOVE_DUPLICATES OcctUsedPackages)set (OcctSourceFolders)
set (OcctIncludeDirs)
foreach(package ${OcctUsedPackages})if (NOT package STREQUAL "")list (APPEND OcctSourceFolders build/occt/src/${package}/*.c*)list (APPEND OcctIncludeDirs build/occt/src/${package})endif()
endforeach()

 


set (ChiliWasmSourcesFolder src)
file (GLOBChiliWasmSourceFiles CONFIGURE_DEPENDS${ChiliWasmSourcesFolder}/*.hpp${ChiliWasmSourcesFolder}/*.cpp
)
source_group ("Sources" FILES ${ChiliWasmSourceFiles})
source_group ("OCCT" FILES ${OcctSourceFiles})


if (${EMSCRIPTEN})add_library(occt STATIC ${OcctSourceFiles})target_include_directories (occt PUBLIC ${OcctIncludeDirs} )target_compile_options (occt PUBLIC$<$<CONFIG:Release>:-Os>$<$<CONFIG:Release>:-flto>$<IF:$<CONFIG:Release>,-sDISABLE_EXCEPTION_CATCHING=1,-sDISABLE_EXCEPTION_CATCHING=0>-DOCCT_NO_PLUGINS)add_executable (${TARGET} ${ChiliWasmSourceFiles})target_include_directories (${TARGET} PUBLIC ${OcctIncludeDirs})target_compile_options (${TARGET} PUBLIC$<$<CONFIG:Release>:-Os>$<$<CONFIG:Release>:-flto>$<IF:$<CONFIG:Release>,-sDISABLE_EXCEPTION_CATCHING=1,-sDISABLE_EXCEPTION_CATCHING=0>)target_link_libraries(${TARGET} PUBLIC occt)target_link_options (${TARGET} PUBLIC$<IF:$<CONFIG:Release>,-Os,-O0>$<IF:$<CONFIG:Release>,-flto,-fno-lto>$<IF:$<CONFIG:Release>,-sDISABLE_EXCEPTION_CATCHING=1,-sDISABLE_EXCEPTION_CATCHING=0>-sMODULARIZE=1-sEXPORT_ES6=1-sALLOW_MEMORY_GROWTH=1-sMAXIMUM_MEMORY=4GB-sENVIRONMENT="web"--bind--emit-tsd "${TARGET}.d.ts")install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_PREFIX})install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.wasm DESTINATION ${CMAKE_INSTALL_PREFIX})install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.d.ts DESTINATION ${CMAKE_INSTALL_PREFIX})endif ()

.为什么 target_link_libraries(${TARGET} PRIVATE nlohmann_json::nlohmann_json)要在if (${EMSCRIPTEN})里,find_package(nlohmann_json CONFIG REQUIRED)不用

 不写c++了,他这个项目要加上我的c++代码,每次我得从头编译一次occt

写typescripe吧

要不然就要单独编译看看行不行

 

相关文章:

  • 学习海康VisionMaster之中线查找
  • 力扣每日打卡 2176. 统计数组中相等且可以被整除的数对(简单)
  • Docker使用、容器迁移
  • Vue实现版本检测与升级
  • 软件开发中的入静与禅定:探寻深度专注与灵感的源泉
  • 【人力资源管理系统】C#实现
  • Linux之基础命令
  • 笔记整理四
  • Java基础 4.18
  • ctfshow-大赛原题-web702
  • 基于WOA鲸鱼优化的NARMAX模型参数辨识算法MATLAB仿真,对比PSO优化算法
  • 云计算(Cloud Computing)概述——从AWS开始
  • 守护进程编程
  • 音视频之H.265/HEVC变换编码
  • kafka jdbc connector适配kadb数据实时同步
  • Uniapp调用native.js使用经典蓝牙串口通讯方法及问题解决
  • Web 前端包管理工具深度解析:npm、yarn、pnpm 全面对比与实战建议
  • 第五章 SQLite数据库:4、SQLite 进阶用法:常见的约束、PRAGMA 配置、数据操作
  • 微信小程序怎么分包步骤(包括怎么主包跳转到分包)
  • UE5 渲染视频
  • 野猪穿过江苏电视台楼前广场,被抓捕后送往红山森林动物园
  • 点燃“文化活火”,上海百年街区创新讲述“文化三地”故事
  • 文旅部副部长饶权出任国家文物局局长
  • 航天科技集团质量技术部部长严泽想升任集团副总经理
  • 传媒湃︱《金陵晚报》副刊“雨花石”5月起改为免费刊登
  • 这个器官健康的人,不容易得抑郁症