完成迁移
This commit is contained in:
138
yps-quickjs/README.md
Normal file
138
yps-quickjs/README.md
Normal file
@@ -0,0 +1,138 @@
|
||||
# yps-quickjs
|
||||
|
||||
QuickJS JavaScript 引擎的跨平台静态/动态库封装,用于集成到 GUI 项目中。
|
||||
|
||||
## 概述
|
||||
|
||||
ypqjs 是基于 QuickJS-ng 的轻量级 JavaScript 引擎库,支持 Windows 和 Linux 平台。
|
||||
|
||||
## 特性
|
||||
|
||||
- 跨平台支持(Windows/Linux)
|
||||
- 可编译为静态库或动态库
|
||||
- 包含标准 C 库扩展(可选)
|
||||
- C11 标准
|
||||
- 完整的 ECMAScript 支持
|
||||
|
||||
## 构建
|
||||
|
||||
### 前置要求
|
||||
|
||||
- CMake 3.10 或更高版本
|
||||
- C 编译器(支持 C11):GCC、Clang、MSVC 等
|
||||
|
||||
### Windows 构建
|
||||
|
||||
```cmd
|
||||
cd yps-quickjs
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build . --config Release
|
||||
```
|
||||
|
||||
### Linux 构建
|
||||
|
||||
```bash
|
||||
cd yps-quickjs
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build .
|
||||
```
|
||||
|
||||
### 构建选项
|
||||
|
||||
- `YPQJS_BUILD_SHARED_LIBS=ON` - 构建动态库(默认:静态库)
|
||||
- `YPQJS_ENABLE_LIBC=ON` - 启用标准 C 库扩展(默认:启用)
|
||||
|
||||
示例:
|
||||
|
||||
```cmake
|
||||
cmake .. -DYPQJS_BUILD_SHARED_LIBS=ON -DYPQJS_ENABLE_LIBC=ON
|
||||
```
|
||||
|
||||
### Debug 构建
|
||||
|
||||
```cmake
|
||||
cmake .. -DCMAKE_BUILD_TYPE=Debug
|
||||
```
|
||||
|
||||
## 集成到你的项目
|
||||
|
||||
### 使用 CMake
|
||||
|
||||
在你的项目的 CMakeLists.txt 中添加:
|
||||
|
||||
```cmake
|
||||
# 查找 yps-quickjs
|
||||
find_package(ypqjs REQUIRED)
|
||||
|
||||
# 链接到你的目标
|
||||
target_link_libraries(your_target PRIVATE ypqjs)
|
||||
|
||||
# 如果需要标准 C 库扩展
|
||||
target_compile_definitions(your_target PRIVATE YPQJS_ENABLE_LIBC)
|
||||
```
|
||||
|
||||
### 使用静态库
|
||||
|
||||
```cmake
|
||||
# 直接包含源码
|
||||
add_subdirectory(path/to/yps-quickjs)
|
||||
|
||||
# 链接
|
||||
target_link_libraries(your_target PRIVATE ypqjs)
|
||||
```
|
||||
|
||||
### 使用动态库
|
||||
|
||||
安装后:
|
||||
|
||||
```cmake
|
||||
find_package(ypqjs REQUIRED)
|
||||
target_link_libraries(your_target PRIVATE ypqjs)
|
||||
```
|
||||
|
||||
## API 使用示例
|
||||
|
||||
```c
|
||||
#include "quickjs.h"
|
||||
#include "quickjs-libc.h"
|
||||
|
||||
int main() {
|
||||
// 创建运行时
|
||||
JSRuntime *rt = JS_NewRuntime();
|
||||
|
||||
// 创建上下文
|
||||
JSContext *ctx = JS_NewContext(rt);
|
||||
|
||||
// 初始化标准模块
|
||||
js_init_module_std(ctx, "std");
|
||||
js_init_module_os(ctx, "os");
|
||||
|
||||
// 执行 JavaScript 代码
|
||||
const char *code = "console.log('Hello from yps-quickjs!');";
|
||||
JSValue result = JS_Eval(ctx, code, strlen(code), "<eval>", JS_EVAL_TYPE_GLOBAL);
|
||||
|
||||
// 清理
|
||||
JS_FreeValue(ctx, result);
|
||||
JS_FreeContext(ctx);
|
||||
JS_FreeRuntime(rt);
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
## 头文件
|
||||
|
||||
- `quickjs.h` - 核心 JavaScript 引擎 API
|
||||
- `quickjs-libc.h` - 标准 C 库扩展 API(可选)
|
||||
|
||||
## 许可证
|
||||
|
||||
MIT License - 详见 LICENSE 文件
|
||||
|
||||
## 原项目
|
||||
|
||||
基于 [QuickJS-ng](https://github.com/quickjs-ng/quickjs) 项目开发。
|
||||
Reference in New Issue
Block a user