144 lines
2.5 KiB
Markdown
144 lines
2.5 KiB
Markdown
# DisplayFlow 构建系统说明
|
||
|
||
本文档详细说明 DisplayFlow 的构建系统配置。
|
||
|
||
## 1. 构建系统架构
|
||
|
||
DisplayFlow 使用 CMake 作为统一构建系统,采用模块化配置:
|
||
|
||
```
|
||
cmake/
|
||
├── Dependencies.cmake # 依赖管理
|
||
├── CompilerOptions.cmake # 编译器选项
|
||
├── Android.cmake # Android 平台配置
|
||
├── Windows.cmake # Windows 平台配置
|
||
└── Testing.cmake # 测试框架配置
|
||
```
|
||
|
||
## 2. 依赖管理
|
||
|
||
### 2.1 自动依赖下载
|
||
|
||
项目使用 CMake `FetchContent` 自动下载依赖:
|
||
|
||
- **FlatBuffers**: 自动从 GitHub 下载
|
||
- **Google Test**: 仅在 `BUILD_TESTS=ON` 时下载
|
||
|
||
### 2.2 系统依赖
|
||
|
||
可选使用系统已安装的依赖:
|
||
|
||
```bash
|
||
cmake .. -DUSE_SYSTEM_FLATBUFFERS=ON
|
||
```
|
||
|
||
### 2.3 vcpkg 支持
|
||
|
||
支持使用 vcpkg 管理依赖:
|
||
|
||
```bash
|
||
cmake .. -DCMAKE_TOOLCHAIN_FILE=[vcpkg]/scripts/buildsystems/vcpkg.cmake
|
||
```
|
||
|
||
## 3. 平台配置
|
||
|
||
### 3.1 Windows
|
||
|
||
- 自动检测 Visual Studio 版本
|
||
- 配置 Windows SDK
|
||
- 设置 Unicode 字符集
|
||
- 链接 DirectX 库
|
||
|
||
### 3.2 Android
|
||
|
||
- 配置 Android NDK
|
||
- 设置 Android API 级别
|
||
- 配置 ABI(arm64-v8a, armeabi-v7a, x86, x86_64)
|
||
- 链接 Android 系统库
|
||
|
||
## 4. 编译选项
|
||
|
||
### 4.1 C++ 标准
|
||
|
||
- 使用 C++17 标准
|
||
- 要求严格符合标准(`CMAKE_CXX_EXTENSIONS OFF`)
|
||
|
||
### 4.2 警告级别
|
||
|
||
- **MSVC**: `/W4`(警告级别 4)
|
||
- **GCC/Clang**: `-Wall -Wextra -Wpedantic`
|
||
|
||
### 4.3 优化选项
|
||
|
||
- **Debug**: 禁用优化,生成调试信息
|
||
- **Release**: 最高优化级别
|
||
|
||
## 5. 测试框架
|
||
|
||
### 5.1 Google Test
|
||
|
||
使用 Google Test 作为单元测试框架:
|
||
|
||
```cpp
|
||
#include <gtest/gtest.h>
|
||
|
||
TEST(MyTest, TestCase) {
|
||
EXPECT_EQ(1 + 1, 2);
|
||
}
|
||
```
|
||
|
||
### 5.2 运行测试
|
||
|
||
```bash
|
||
# 构建测试
|
||
cmake .. -DBUILD_TESTS=ON
|
||
cmake --build .
|
||
|
||
# 运行测试
|
||
ctest
|
||
```
|
||
|
||
## 6. 构建脚本
|
||
|
||
项目提供了便捷的构建脚本:
|
||
|
||
- `scripts/build.sh` (Linux/macOS)
|
||
- `scripts/build.bat` (Windows)
|
||
- `scripts/setup_dependencies.sh` (Linux/macOS)
|
||
- `scripts/setup_dependencies.bat` (Windows)
|
||
|
||
## 7. 输出目录结构
|
||
|
||
```
|
||
build/
|
||
├── bin/ # 可执行文件
|
||
├── lib/ # 库文件
|
||
└── tests/ # 测试输出
|
||
```
|
||
|
||
## 8. 常见配置
|
||
|
||
### 开发模式
|
||
|
||
```bash
|
||
cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON
|
||
```
|
||
|
||
### 发布模式
|
||
|
||
```bash
|
||
cmake .. -DCMAKE_BUILD_TYPE=Release
|
||
```
|
||
|
||
### 启用所有功能
|
||
|
||
```bash
|
||
cmake .. \
|
||
-DCMAKE_BUILD_TYPE=Release \
|
||
-DBUILD_TESTS=ON \
|
||
-DENABLE_VP8_CODEC=ON
|
||
```
|
||
|
||
|
||
|