重构平台条件编译,剥离 LightGame 调试内容到 Debug 配置
- 把 USE_FRAMEBUFFER 替换为 TARGET_IMX / TARGET_PC 双正向互斥宏,由 CMake 选项 TARGET_IMX 推导,代码层只用 #ifdef 正向判断 - 新增 IMX6U_DEBUG 宏,通过 $<$<CONFIG:Debug>:...> 只在 Debug 构建中注入 - LightGame 关卡编辑器(LevelEditor + ImGui)改为仅 PC + Debug 编入,Release 不参与编译 - LightGame draw_debug、debug_mode_、--debug 命令行、[INFO] 启动日志全部用 IMX6U_DEBUG 门控,Release 二进制中完全消失 - [WARN] 硬件初始化失败提示保留在 Release,作为现场诊断信息 - README、APP_AND_CORE_ARCHITECTURE、Game README 同步新宏命名,并新增「构建类型与调试开关」小节
This commit is contained in:
@@ -3,7 +3,7 @@ set(TOM_ATLAS_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/generated/tom_atlas.h")
|
||||
set_source_files_properties(${TOM_ATLAS_HEADER} PROPERTIES GENERATED TRUE)
|
||||
|
||||
set(TOM_GAME_ENABLE_TFLITE_C_API_DEFAULT OFF)
|
||||
if(CMAKE_CROSSCOMPILING AND USE_FRAMEBUFFER)
|
||||
if(CMAKE_CROSSCOMPILING AND TARGET_IMX)
|
||||
set(TOM_GAME_ENABLE_TFLITE_C_API_DEFAULT ON)
|
||||
endif()
|
||||
|
||||
@@ -109,7 +109,7 @@ if(CMAKE_CROSSCOMPILING AND NOT EXISTS "${TOM_ATLAS_HEADER}")
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT USE_FRAMEBUFFER)
|
||||
if(NOT TARGET_IMX)
|
||||
set(TOM_ATLAS_TOOL_SOURCES
|
||||
tools/asset_pipeline/SpriteAssetTool.cpp
|
||||
)
|
||||
|
||||
@@ -20,9 +20,10 @@
|
||||
#include "recognition/TinyKwsRecognizer.h"
|
||||
#endif
|
||||
|
||||
#ifdef USE_FRAMEBUFFER
|
||||
#ifdef TARGET_IMX
|
||||
#include "FBDisplay.h"
|
||||
#else
|
||||
#endif
|
||||
#ifdef TARGET_PC
|
||||
#include "SDLDisplay.h"
|
||||
#endif
|
||||
|
||||
@@ -49,9 +50,10 @@ namespace
|
||||
|
||||
static Platform::IDisplay* CreateDisplay()
|
||||
{
|
||||
#ifdef USE_FRAMEBUFFER
|
||||
#ifdef TARGET_IMX
|
||||
return new Platform::FBDisplay();
|
||||
#else
|
||||
#endif
|
||||
#ifdef TARGET_PC
|
||||
return new Platform::SDLDisplay();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
- Windows C++ 构建默认不启用 TFLite C API,避免在 Windows 上编译/链接
|
||||
TensorFlow C++。
|
||||
- ARM framebuffer 交叉编译时默认启用 TFLite C API:
|
||||
`CMAKE_CROSSCOMPILING && USE_FRAMEBUFFER` 时
|
||||
`CMAKE_CROSSCOMPILING && TARGET_IMX` 时
|
||||
`TOM_GAME_ENABLE_TFLITE_C_API=ON`。
|
||||
- 仓库里的 `runtime/lib/tensorflow/lite/c/libtensorflowlite_c.so` 是 ELF32 ARM
|
||||
hard-float 动态库,方向上匹配 IMX6ULL 常见的 `arm-linux-gnueabihf`
|
||||
@@ -98,7 +98,7 @@ python src\Apps\Game\tools\kws_python_test.py --wav tmp\kws_test.wav
|
||||
```bash
|
||||
cmake -B build-arm-fb \
|
||||
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm-linux-gnueabihf.cmake \
|
||||
-DUSE_FRAMEBUFFER=ON \
|
||||
-DTARGET_IMX=ON \
|
||||
-DTOM_GAME_ENABLE_TFLITE_C_API=ON \
|
||||
-DTOM_GAME_TFLITE_INCLUDE_DIR=/path/to/tensorflow-source-root \
|
||||
-DTOM_GAME_TFLITE_LIBRARY=$PWD/src/Apps/Game/runtime/lib/tensorflow/lite/c/libtensorflowlite_c.so \
|
||||
@@ -112,7 +112,7 @@ cmake --build build-arm-fb --target IMX6U-Game
|
||||
```bash
|
||||
cmake -B build-arm-fb-no-kws \
|
||||
-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm-linux-gnueabihf.cmake \
|
||||
-DUSE_FRAMEBUFFER=ON \
|
||||
-DTARGET_IMX=ON \
|
||||
-DTOM_GAME_ENABLE_TFLITE_C_API=OFF \
|
||||
.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user