我有一个自定义函数,该函数将排除给定路径中名称为“ template”的所有源文件,并将其余文件设置为变量:
FUNCTION(EXCLUDE_TEMPLATES PATH)
FOREACH(src ${PATH})
IF(NOT (src MATCHES ".*template.*"))
STRING(APPEND FILES "${src};")
ENDIF(NOT (src MATCHES ".*template.*"))
ENDFOREACH(src)
endfunction(EXCLUDE_TEMPLATES)
目标看起来像这样:
add_executable(Test ${FILES} ${COMMON_SRC})
现在我希望每次在目标之前调用EXCLUDE_TEMPLATES,我这样做:
add_custom_command(TARGET TEST PRE_BUILD
COMMAND EXCLUDE_TEMPLATES ${CMAKE_SOURCE_DIR}/PLATFORM/XXX/Src/*.c)
但是CMake抱怨找不到EXCLUDE_TEMPLATES :。
我认为add_custom_command
只能运行shell命令,那么如何在add_custom_command
中使用自定义cmake功能?