1. 抽离了LApp的部分内容,以解耦其对Qt的依赖,并且尝试了拓展多渲染后端支持。

This commit is contained in:
2026-06-23 21:06:35 +08:00
parent 77d65014ab
commit d41c009a19
18 changed files with 691 additions and 172 deletions
+29 -32
View File
@@ -39,6 +39,13 @@ else()
message(FATAL_ERROR "Unsupported platform")
endif()
# 渲染后端选择
if(PLAT STREQUAL "linux_arm")
add_definitions(-DRENDER_BACKEND_GLES2)
else()
add_definitions(-DRENDER_BACKEND_OPENGL)
endif()
message(STATUS " 当前Qt路径: ${CMAKE_PREFIX_PATH}")
message(STATUS " 当前平台: ${PLAT} 架构: ${ARCH}")
@@ -51,11 +58,6 @@ endif()
set(FRAMEWORK_SOURCE OpenGL)
# 查找源文件
file(GLOB_RECURSE LAppLive2D
CONFIGURE_DEPENDS
"3rdparty/Live2D/Src/LAppLive2D/Src/*.cpp"
"3rdparty/Live2D/Src/LAppLive2D/Inc/*.hpp"
)
file(GLOB_RECURSE YosugaSrc
CONFIGURE_DEPENDS
"src/Handle/AudioHandle/Src/*.cpp"
@@ -119,7 +121,7 @@ else()
endif()
# 主可执行文件
add_executable(${PROJECT_NAME} main.cpp ${LAppLive2D} ${YosugaSrc})
add_executable(${PROJECT_NAME} main.cpp ${YosugaSrc})
# =============================================
# 库导入路径配置
@@ -168,6 +170,25 @@ add_library(Live2DCubismCore STATIC IMPORTED GLOBAL)
set_target_properties(Live2DCubismCore PROPERTIES IMPORTED_LOCATION "${CORE_LIB_PATH}")
message(STATUS "Live2D Core 库: ${CORE_LIB_PATH}")
# 导入 LAppLive2D 子项目 Live2D 应用层,静态库
# 依赖顺序:lapp_live2d -> Framework -> Live2DCubismCore
add_subdirectory(3rdparty/Live2D/Src/LAppLive2D)
# LAppOpenGL.hpp 根据平台选择 GL / GLES2 头文件,为 lapp_live2d 补充对应路径
if(NOT PLAT STREQUAL "linux_arm")
target_include_directories(lapp_live2d PUBLIC
3rdparty/Live2D/Src/glew/include
3rdparty/Live2D/Src/glew/include/GL
3rdparty/Live2D/Src/glfw/include
3rdparty/Live2D/Src/glfw/include/GLFW
)
else()
target_include_directories(lapp_live2d PUBLIC
/home/misaki/MisakiCodes/Env/rk3566-sdk/host/aarch64-buildroot-linux-gnu/sysroot/usr/include
/home/misaki/MisakiCodes/Env/rk3566-sdk/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/GLES2
)
endif()
# GLFW 和 GLEW(仅桌面平台需要)
if(NOT PLAT STREQUAL "linux_arm")
# glfw
@@ -194,11 +215,10 @@ if(NOT PLAT STREQUAL "linux_arm")
message(STATUS "GLEW 库: ${GLEW_LIB_NAME}")
endif()
# =============================================
# 链接库
# =============================================
if(PLAT STREQUAL "linux_arm") ## 针对嵌入式Linux的配置,部分条目需要根据你的soc以及sysroot进行修改
target_link_libraries(${PROJECT_NAME} PRIVATE
lapp_live2d
Framework
Live2DCubismCore
# Mali GPU 驱动完整链接(EGLFS 必需)
@@ -217,6 +237,7 @@ if(PLAT STREQUAL "linux_arm") ## 针对嵌入式Linux的配置,部分条
else()
# 桌面平台
target_link_libraries(${PROJECT_NAME} PRIVATE
lapp_live2d
Framework
glfw3
GLEW
@@ -238,14 +259,8 @@ else()
endif()
endif()
# =============================================
# 头文件路径
# =============================================
target_include_directories(${PROJECT_NAME} PRIVATE
3rdparty/Live2D/Src/Framework/src
3rdparty/Live2D/Src/Core/include
3rdparty/Live2D/Src/stb
3rdparty/Live2D/Src/LAppLive2D/Inc
3rdparty/autogui-cpp/src
src/Handle/AudioHandle/Inc
src/Handle/NetWorkHandle/Inc
@@ -258,24 +273,6 @@ target_include_directories(${PROJECT_NAME} PRIVATE
src/Utils/Inc
)
# ARM 平台需要包含 sysroot 中的 OpenGL ES 头文件 此处需要根据实际sysroot目录进行修改配置
if(PLAT STREQUAL "linux_arm")
target_include_directories(${PROJECT_NAME} PRIVATE
/home/misaki/MisakiCodes/Env/rk3566-sdk/host/aarch64-buildroot-linux-gnu/sysroot/usr/include
/home/misaki/MisakiCodes/Env/rk3566-sdk/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/GLES2
)
endif()
# 非 ARM 平台才需要 GLEW/GLFW 头文件路径
if(NOT PLAT STREQUAL "linux_arm")
target_include_directories(${PROJECT_NAME} PRIVATE
3rdparty/Live2D/Src/glew/include
3rdparty/Live2D/Src/glew/include/GL
3rdparty/Live2D/Src/glfw/include
3rdparty/Live2D/Src/glfw/include/GLFW
)
endif()
# 资源复制(所有平台)
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/other/Resources"
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")