重构平台条件编译,剥离 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:
2026-06-16 13:46:12 +08:00
parent 334c9ee96f
commit 10872fde82
14 changed files with 139 additions and 55 deletions
+2 -2
View File
@@ -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
)
+6 -4
View File
@@ -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
}
+3 -3
View File
@@ -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 \
.