在我的cmake C ++项目中,我正在通过
添加源文件到目标file(GLOB HEADERS *.h)
file(GLOB SOURCES *.cpp)
add_library(${PROJECT_NAME} SHARED ${SOURCES} ${HEADERS})
在macOS中,这包括._Source.cpp
和._Header.h
这样的文件我试过了REGEX
list(FILTER HEADERS REGEX "^[^\.].+" output_variable HEADERS)
list(FILTER SOURCES REGEX "^[^\.].+" output_variable SOURCES)
但这不起作用。
答案 0 :(得分:4)
将我的评论转化为答案
file(GLOB HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*.h")
file(GLOB SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*.cpp")
list(FILTER HEADERS EXCLUDE REGEX "^\\..+")
list(FILTER SOURCES EXCLUDE REGEX "^\\..+"
list(FILTER ...)
需要INCLUDE
或EXCLUDE
关键字file(GLOB ...)
会返回完整路径,因此您需要添加RELATIVE
关键字[]
(任意表达式)因为您只检查单个字符<强>参考强>