构建系统
用宏添加文件,自动解析头文件源文件
使用了这样的宏:
macro(RUNTIME_ADD_SOURCE)
set(HEADER_FILES "")
set(SOURCE_FILES "")
foreach(SOURCE_FILE ${ARGN})
if(SOURCE_FILE MATCHES "(\.h$)|(\.hpp$)")
list(APPEND HEADER_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}")
elseif(SOURCE_FILE MATCHES "(\.cpp$)|(\.cc$)")
list(APPEND SOURCE_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}")
endif()
endforeach()
set(RuntimeHeaderFiles ${RuntimeHeaderFiles} ${HEADER_FILES} PARENT_SCOPE)
set(RuntimeSourceFiles ${RuntimeSourceFiles} ${SOURCE_FILES} PARENT_SCOPE)
endmacro(RUNTIME_ADD_SOURCE)对于这样的文件结构:

我们只需要写:
add_subdirectory(Layer)
RUNTIME_ADD_SOURCE(
Application.h Application.cpp
)但是要注意,文件夹套文件夹的结构,必须要在底层再写一个 RUNTIME_ADD_SOURCE 上层才能接收到。例如 Plugins 的这样的结构:

我们就需要写一个空的宏:
add_subdirectory(MeshImporter)
PLUGINS_ADD_SOURCE()Last updated