Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 22 additions & 38 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,49 +75,38 @@ endif()
set(XPS_SUPPORT_ENABLED ${XPS_SUPPORT_RESOLVED})

# ====== 收集 reader 源文件 ======
# 根目录源文件(排除 main.cpp)
file(GLOB READER_ROOT_SOURCES
# 递归收集 reader/ 下所有源文件,排除 main.cpp
# 新增子模块时无需修改此文件
file(GLOB_RECURSE READER_ALL_SOURCES
"${CMAKE_SOURCE_DIR}/reader/*.cpp"
"${CMAKE_SOURCE_DIR}/reader/*.c"
"${CMAKE_SOURCE_DIR}/reader/*.h"
)
list(REMOVE_ITEM READER_ROOT_SOURCES "${CMAKE_SOURCE_DIR}/reader/main.cpp")
list(REMOVE_ITEM READER_ALL_SOURCES "${CMAKE_SOURCE_DIR}/reader/main.cpp")

# 各子模块源文件
file(GLOB_RECURSE APP_SOURCES "${CMAKE_SOURCE_DIR}/reader/app/*.cpp" "${CMAKE_SOURCE_DIR}/reader/app/*.h")
file(GLOB_RECURSE BROWSER_SOURCES "${CMAKE_SOURCE_DIR}/reader/browser/*.cpp" "${CMAKE_SOURCE_DIR}/reader/browser/*.h")
file(GLOB_RECURSE DOCUMENT_SOURCES "${CMAKE_SOURCE_DIR}/reader/document/*.cpp" "${CMAKE_SOURCE_DIR}/reader/document/*.h")
file(GLOB_RECURSE SIDEBAR_SOURCES "${CMAKE_SOURCE_DIR}/reader/sidebar/*.cpp" "${CMAKE_SOURCE_DIR}/reader/sidebar/*.h")
file(GLOB_RECURSE UIFRAME_SOURCES "${CMAKE_SOURCE_DIR}/reader/uiframe/*.cpp" "${CMAKE_SOURCE_DIR}/reader/uiframe/*.h")
file(GLOB_RECURSE WIDGET_SOURCES "${CMAKE_SOURCE_DIR}/reader/widgets/*.cpp" "${CMAKE_SOURCE_DIR}/reader/widgets/*.h")
# ====== 自动发现 reader 子目录作为 include 路径 ======
file(GLOB READER_SUBDIRS LIST_DIRECTORIES true "${CMAKE_SOURCE_DIR}/reader/*")
foreach(_dir ${READER_SUBDIRS})
if(IS_DIRECTORY "${_dir}")
list(APPEND READER_INCLUDE_DIRS "${_dir}")
endif()
endforeach()
list(APPEND READER_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/reader")

# ====== 收集测试源文件 ======
file(GLOB TEST_ROOT_SOURCES
file(GLOB_RECURSE TEST_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/*.h"
)
file(GLOB TEST_APP_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/app/*.cpp")
file(GLOB TEST_BROWSER_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/browser/*.cpp")
file(GLOB TEST_DOCUMENT_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/document/*.cpp")
file(GLOB TEST_SIDEBAR_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/sidebar/*.cpp")
file(GLOB TEST_UIFRAME_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/uiframe/*.cpp")
file(GLOB TEST_WIDGET_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/widgets/*.cpp")
# 排除非测试辅助目录(如 at/、files/ 等资源目录)
list(FILTER TEST_SOURCES EXCLUDE REGEX "${CMAKE_CURRENT_SOURCE_DIR}/at/")
list(FILTER TEST_SOURCES EXCLUDE REGEX "${CMAKE_CURRENT_SOURCE_DIR}/files/")
list(FILTER TEST_SOURCES EXCLUDE REGEX "${CMAKE_CURRENT_SOURCE_DIR}/include/")

# ====== 合并所有源文件 ======
set(ALL_SOURCES
${READER_ROOT_SOURCES}
${APP_SOURCES}
${BROWSER_SOURCES}
${DOCUMENT_SOURCES}
${SIDEBAR_SOURCES}
${UIFRAME_SOURCES}
${WIDGET_SOURCES}
${TEST_ROOT_SOURCES}
${TEST_APP_SOURCES}
${TEST_BROWSER_SOURCES}
${TEST_DOCUMENT_SOURCES}
${TEST_SIDEBAR_SOURCES}
${TEST_UIFRAME_SOURCES}
${TEST_WIDGET_SOURCES}
${READER_ALL_SOURCES}
${TEST_SOURCES}
)

# ====== 定义测试可执行文件 ======
Expand All @@ -130,14 +119,9 @@ set_target_properties(${PROJECT_NAME} PROPERTIES
)

# ====== 包含目录 ======
# READER_INCLUDE_DIRS 由上方自动发现,新增子模块时无需手动添加
target_include_directories(${PROJECT_NAME} PUBLIC
${CMAKE_SOURCE_DIR}/reader
${CMAKE_SOURCE_DIR}/reader/app
${CMAKE_SOURCE_DIR}/reader/browser
${CMAKE_SOURCE_DIR}/reader/document
${CMAKE_SOURCE_DIR}/reader/sidebar
${CMAKE_SOURCE_DIR}/reader/uiframe
${CMAKE_SOURCE_DIR}/reader/widgets
${READER_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/include/gtest
${PDFIUM_INCLUDE_DIRS}
Expand Down
Loading