taitank-rs 0.1.2

A cross-platform Flexbox layout engine in Rust
Documentation
# 多平台构建指南

Taitank Rust 支持多个平台的构建和部署。

## 支持的平台

- **macOS** (x86_64, arm64)
- **Linux** (x86_64, arm64)
- **Android** (arm64-v8a, armeabi-v7a, x86, x86_64)
- **iOS** (arm64, x86_64 simulator)
- **WebAssembly** (浏览器和 Node.js)
- **Windows** (x86_64, MSVC)

## 构建方法

### macOS

```bash
cargo build --release
# 或使用构建脚本
./build.sh macos release
```

### Linux

```bash
cargo build --release --target x86_64-unknown-linux-gnu
# 或使用构建脚本
./build.sh linux release
```

### Android

#### 前置要求

1. 安装 Android NDK
2. 配置 Rust Android 工具链

```bash
# 安装 Android 目标
rustup target add aarch64-linux-android
rustup target add armv7-linux-androideabi
rustup target add i686-linux-android
rustup target add x86_64-linux-android

# 构建
./build.sh android release
```

#### 在 Android 项目中使用

1. 将生成的 `.so` 文件复制到 `app/src/main/jniLibs/`
2.`build.gradle` 中配置:

```gradle
android {
    defaultConfig {
        ndk {
            abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64'
        }
    }
}
```

### iOS

#### 前置要求

1. 安装 Xcode
2. 配置 Rust iOS 工具链

```bash
# 安装 iOS 目标
rustup target add aarch64-apple-ios
rustup target add x86_64-apple-ios
rustup target add aarch64-apple-ios-sim

# 构建
./build.sh ios release
```

#### 在 iOS 项目中使用

1. 创建 Xcode Framework
2. 将生成的库文件添加到 Xcode 项目
3.`Podfile` 中配置(如果使用 CocoaPods)

### WebAssembly

#### 前置要求

```bash
# 安装 wasm-pack
cargo install wasm-pack

# 安装 wasm32 target
rustup target add wasm32-unknown-unknown
```

#### 构建

```bash
cd wasm
wasm-pack build --target web --out-dir pkg
```

#### 使用

```html
<script type="module">
    import init, { Node } from './pkg/taitank_wasm.js';
    await init();
    // 使用 Taitank...
</script>
```

### C FFI

#### 构建

```bash
cd ffi
cargo build --release
```

#### 使用

```c
#include "taitank.h"

TaitankNodeRef root = taitank_node_create();
taitank_set_width(root, 500.0f);
taitank_do_layout(root, VALUE_UNDEFINED, VALUE_UNDEFINED, DIRECTION_LTR);
```

## 交叉编译配置

项目包含 `.cargo/config.toml` 配置文件,用于设置交叉编译工具链。

## 持续集成

项目支持在 CI/CD 中自动构建多个平台:

- GitHub Actions
- GitLab CI
- CircleCI

示例 CI 配置请参考 `.github/workflows/` 目录。