Initial commit
This commit is contained in:
50
CMakeLists.txt
Normal file
50
CMakeLists.txt
Normal file
@@ -0,0 +1,50 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
project(smart_wasm_json)
|
||||
|
||||
# 设置 Emscripten 工具链
|
||||
if(NOT DEFINED EMSCRIPTEN_ROOT_PATH)
|
||||
set(EMSCRIPTEN_ROOT_PATH "E:/emsdk/upstream/emscripten")
|
||||
endif()
|
||||
|
||||
if(EXISTS "${EMSCRIPTEN_ROOT_PATH}/cmake/Modules/Platform/Emscripten.cmake")
|
||||
set(CMAKE_TOOLCHAIN_FILE "${EMSCRIPTEN_ROOT_PATH}/cmake/Modules/Platform/Emscripten.cmake")
|
||||
else()
|
||||
message(FATAL_ERROR "Emscripten toolchain file not found")
|
||||
endif()
|
||||
|
||||
# C++ 标准
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# 源文件
|
||||
set(SOURCES
|
||||
src/main.cpp
|
||||
src/math_utils.cpp
|
||||
src/smart_json_wrapper.cpp
|
||||
)
|
||||
|
||||
# 头文件目录
|
||||
include_directories(src)
|
||||
|
||||
# 创建可执行文件
|
||||
add_executable(smart_wasm ${SOURCES})
|
||||
|
||||
# 设置编译选项
|
||||
target_compile_options(smart_wasm PRIVATE
|
||||
-O3
|
||||
-s WASM=1
|
||||
-s EXPORTED_FUNCTIONS='["_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free"]'
|
||||
-s EXPORTED_RUNTIME_METHODS='["ccall","cwrap","UTF8ToString","stringToUTF8","lengthBytesUTF8"]'
|
||||
-s ALLOW_MEMORY_GROWTH=1
|
||||
-s MODULARIZE=1
|
||||
-s EXPORT_NAME='createSmartMathModule'
|
||||
-s ENVIRONMENT='web'
|
||||
-s ASSERTIONS=1
|
||||
)
|
||||
|
||||
# 输出设置
|
||||
set_target_properties(smart_wasm PROPERTIES
|
||||
SUFFIX ".js"
|
||||
OUTPUT_NAME "smart_math"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/public/wasm"
|
||||
)
|
||||
Reference in New Issue
Block a user