1. 抽离了LApp的部分内容,以解耦其对Qt的依赖,并且尝试了拓展多渲染后端支持。
This commit is contained in:
+29
-32
@@ -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}")
|
||||
|
||||
Reference in New Issue
Block a user