2.5 KiB
2.5 KiB
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 系统依赖
可选使用系统已安装的依赖:
cmake .. -DUSE_SYSTEM_FLATBUFFERS=ON
2.3 vcpkg 支持
支持使用 vcpkg 管理依赖:
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 作为单元测试框架:
#include <gtest/gtest.h>
TEST(MyTest, TestCase) {
EXPECT_EQ(1 + 1, 2);
}
5.2 运行测试
# 构建测试
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. 常见配置
开发模式
cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON
发布模式
cmake .. -DCMAKE_BUILD_TYPE=Release
启用所有功能
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTS=ON \
-DENABLE_VP8_CODEC=ON