在add_custom_command中调用自定义cmake函数

时间:2019-01-24 02:57:45

标签: cmake

我有一个自定义函数,该函数将排除给定路径中名称为“ 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功能?

0 个答案:

没有答案