In my cmake C++ project, I am adding source files to target by
file(GLOB HEADERS *.h)
file(GLOB SOURCES *.cpp)
add_library(${PROJECT_NAME} SHARED ${SOURCES} ${HEADERS})
In macOS this is including files like ._Source.cpp
and ._Header.h
I tried the REGEX
list(FILTER HEADERS REGEX "^[^\.].+" output_variable HEADERS)
list(FILTER SOURCES REGEX "^[^\.].+" output_variable SOURCES)
but this is not working.
Turning my comments into an answer
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 ...)
needs INCLUDE
or EXCLUDE
keywordfile(GLOB ...)
by default will return full paths, so you need to add the RELATIVE
keyword[]
(any-of-expression) because you only check for a single characterReference