mirror of
https://github.com/LHY0125/PathEditor.git
synced 2026-05-09 18:02:52 +08:00
feat: 引入 Lua 配置系统实现 UI 参数热更新
- 添加 Lua 5.5 库支持,包含头文件和动态链接库 - 新增 lua_config 模块,提供配置初始化、获取字符串/整型值等功能 - 创建 config.lua 配置文件,集中管理所有 UI 文本、尺寸和布局参数 - 移除原有的硬编码 config.h,将 UI 常量迁移至 Lua 配置 - 修改主窗口、对话框和回调函数,动态读取 Lua 配置值 - 更新 CMakeLists.txt,添加 Lua 库依赖和 DLL 复制步骤 - 删除过时的 Makefile,统一使用 CMake 构建
This commit is contained in:
+12
-1
@@ -20,6 +20,7 @@ set(SOURCES
|
||||
src/core/registry_service.c
|
||||
src/core/path_manager.c
|
||||
src/core/app_context.c
|
||||
src/core/lua_config.c
|
||||
src/controller/callbacks.c
|
||||
ico/resources.rc
|
||||
)
|
||||
@@ -51,15 +52,18 @@ target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/include/controller
|
||||
${CMAKE_SOURCE_DIR}/include/utils
|
||||
${CMAKE_SOURCE_DIR}/libs/IUP/include
|
||||
${CMAKE_SOURCE_DIR}/libs/lua/include
|
||||
)
|
||||
|
||||
# 设置库文件搜索路径
|
||||
target_link_directories(${PROJECT_NAME} PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/libs/IUP
|
||||
${CMAKE_SOURCE_DIR}/libs/lua
|
||||
)
|
||||
|
||||
# 链接所需库
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
lua55
|
||||
iup
|
||||
iupcd
|
||||
gdi32
|
||||
@@ -70,11 +74,18 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
advapi32
|
||||
)
|
||||
|
||||
# 编译完成后,仅将程序实际需要的核心 DLL 文件复制到构建输出目录
|
||||
# 编译完成后,复制程序实际需要的核心 DLL 文件到构建输出目录
|
||||
set(IUP_REQUIRED_DLLS "${CMAKE_CURRENT_SOURCE_DIR}/libs/IUP/iup.dll")
|
||||
set(LUA_REQUIRED_DLLS "${CMAKE_CURRENT_SOURCE_DIR}/libs/lua/lua55.dll")
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
${IUP_REQUIRED_DLLS}
|
||||
"$<TARGET_FILE_DIR:${PROJECT_NAME}>"
|
||||
COMMENT "Copying required DLLs to build directory..."
|
||||
)
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
${LUA_REQUIRED_DLLS}
|
||||
"$<TARGET_FILE_DIR:${PROJECT_NAME}>"
|
||||
COMMENT "Copying Lua DLL to build directory..."
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user