如何使add_custom_target仅在“make”上运行,不是!在“make install”中

时间:2014-02-13 05:09:18

标签: cmake

这是我的代码:

add_custom_target (ts2qm)
file (GLOB _TS_FILES "*.ts")
foreach (_TS_FILE ${_TS_FILES})
    # ...
    add_custom_command(TARGET ts2qm POST_BUILD COMMAND "runme")
    # ...
endforeach (_TS_FILE ${_TS_FILES})

add_dependencies(../${PACKAGE} ts2qm)

所以当我点击" make"这个目标是按照预期触发的,但是......也是在#34; make install" ....这里提出的问题是:如何避免触发" make install"?

感谢。

/ EDIT1:

file (GLOB _TS_FILES "*.ts")
foreach (_TS_FILE ${_TS_FILES})
# ...
add_custom_command(OUTPUT locales.txt COMMAND "runme" )
# ...
endforeach (_TS_FILE ${_TS_FILES})

add_custom_target (locales DEPENDS locales.txt)
add_dependencies(../${PACKAGE} locales)

结果相同:(

1 个答案:

答案 0 :(得分:0)

目标“install”取决于目标“all”,因此您无法使用目标级依赖项来避免它。

每次运行目标时都会运行add_custom_command(TARGET)命令。您可以尝试使用add_custom_command(OUTPUT)设置文件级依赖项,因此仅在修改.ts文件时才运行该命令。