Initial commit
This commit is contained in:
55
Makefile
Normal file
55
Makefile
Normal file
@@ -0,0 +1,55 @@
|
||||
# Makefile for Smart WASM JSON Project
|
||||
|
||||
# 配置
|
||||
EMSDK_PATH = E:/emsdk
|
||||
EMCC = $(EMSDK_PATH)/upstream/emscripten/em++.bat
|
||||
SOURCES = src/main.cpp src/math_utils.cpp src/smart_json_wrapper.cpp
|
||||
INCLUDES = -I./src
|
||||
OUTPUT = public/wasm/smart_math.js
|
||||
FLAGS = -std=c++17 -O3
|
||||
|
||||
# WASM 编译选项
|
||||
WASM_FLAGS = \
|
||||
-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 MODULARIZE=1 \
|
||||
-s EXPORT_NAME='createSmartMathModule' \
|
||||
-s ALLOW_MEMORY_GROWTH=1 \
|
||||
-s ENVIRONMENT='web' \
|
||||
-s ASSERTIONS=1
|
||||
|
||||
# 默认目标
|
||||
all: build
|
||||
|
||||
# 构建 WASM
|
||||
build: $(SOURCES)
|
||||
@echo "Building Smart WASM JSON Module..."
|
||||
$(EMCC) $(SOURCES) $(INCLUDES) $(FLAGS) $(WASM_FLAGS) -o $(OUTPUT)
|
||||
@echo "Build complete!"
|
||||
|
||||
# 清理
|
||||
clean:
|
||||
@echo "Cleaning build files..."
|
||||
rm -f public/wasm/*.js public/wasm/*.wasm build/*.exe
|
||||
@echo "Clean complete!"
|
||||
|
||||
# 运行本地测试
|
||||
test: build
|
||||
@echo "Running local tests..."
|
||||
g++ -std=c++17 $(INCLUDES) $(SOURCES) tests/test_smart_json.cpp -o build/test_smart.exe
|
||||
./build/test_smart.exe
|
||||
|
||||
# 启动开发服务器
|
||||
serve: build
|
||||
@echo "Starting development server..."
|
||||
cd public && python -m http.server 8080
|
||||
|
||||
# 安装依赖
|
||||
install:
|
||||
@echo "Please install:"
|
||||
@echo "1. Emscripten SDK"
|
||||
@echo "2. Python 3.7+"
|
||||
@echo "3. Node.js (optional)"
|
||||
|
||||
.PHONY: all build clean test serve install
|
||||
Reference in New Issue
Block a user