chore: 向MaaCore工程增加tasks文件以便检索 (#14731)

* chore: 向MaaCore增加tasks文件

* chore: 支持global
This commit is contained in:
Status102
2025-11-14 01:23:24 +08:00
committed by GitHub
parent d11582f39f
commit 3ded8b574a

View File

@@ -31,6 +31,46 @@ set_target_properties(MaaCore PROPERTIES PUBLIC_HEADER "${MaaCore_PUBLIC_HEADERS
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${maa_src})
# 收集resource/tasks目录下的所有文件作为资源
file(GLOB_RECURSE TASKS_RESOURCE_FILES
"${PROJECT_SOURCE_DIR}/resource/tasks/*"
)
file(GLOB_RECURSE GLOBAL_TASKS_RESOURCE_FILES
"${PROJECT_SOURCE_DIR}/resource/global/*/resource/tasks/*"
)
# 将资源文件添加到MaaCore目标但不参与编译
target_sources(MaaCore PRIVATE ${TASKS_RESOURCE_FILES})
target_sources(MaaCore PRIVATE ${GLOBAL_TASKS_RESOURCE_FILES})
# 使用source_group创建正确的文件夹结构
source_group(TREE "${PROJECT_SOURCE_DIR}/resource/tasks"
PREFIX "Resource Files/tasks/CN"
FILES ${TASKS_RESOURCE_FILES}
)
# 为GLOBAL_TASKS_RESOURCE_FILES创建特殊的文件夹结构
foreach(GLOBAL_FILE ${GLOBAL_TASKS_RESOURCE_FILES})
# 从完整路径中提取A部分${PROJECT_SOURCE_DIR}/resource/global/A/resource/tasks/xxx
string(REGEX REPLACE "${PROJECT_SOURCE_DIR}/resource/global/([^/]+)/resource/tasks/.*" "\\1" FOLDER_NAME "${GLOBAL_FILE}")
# 获取相对于resource/tasks的文件路径部分
string(REGEX REPLACE "${PROJECT_SOURCE_DIR}/resource/global/[^/]+/resource/tasks/(.*)" "\\1" REL_FILE_PATH "${GLOBAL_FILE}")
# 获取文件的目录部分
get_filename_component(FILE_DIR "${REL_FILE_PATH}" DIRECTORY)
# 构建VS中的显示路径
if(FILE_DIR)
set(VS_GROUP "Resource Files/tasks/${FOLDER_NAME}/${FILE_DIR}")
else()
set(VS_GROUP "Resource Files/tasks/${FOLDER_NAME}")
endif()
# 设置单个文件的source_group
source_group("${VS_GROUP}" FILES "${GLOBAL_FILE}")
endforeach()
if(WIN32)
# 注意相比VS版本缺少了 -D_CONSOLE -D_WINDLL 两项
target_compile_definitions(MaaCore PRIVATE ASST_DLL_EXPORTS _UNICODE UNICODE)