CMake:我如何依赖自定义目标的输出?

时间:2010-11-01 05:26:55

标签: cmake

我无法修改的传统制作过程会产生一个我必须进行后期处理的目标。

我使用add_custom_target强制makefile始终运行。 我使用add_custom_command进行后期处理。

问题是,就CMake而言,add_custom_target无法产生输出。那么,如何为后处理步骤设置依赖?我不想运行这些步骤,除非外部make实际更新了它的目标。

add_custom_command不能将add_custom_target的名称用作DEPENDS。我试过这个,它假设add_custom_target名称只是一个文件而无法找到它。

感谢您的帮助。 干杯!

1 个答案:

答案 0 :(得分:3)

使add_custom_command调用依赖于文件,当“外部make实际更新其目标”时,该文件会发生变化。只有当其中一个DEPENDS比其OUTPUT更新时,自定义命令才会运行。

对于CMake add_custom_command调用的DEPENDS,当它们是完整路径文件名引用时,对旧版本的CMake最有效。更新版本的CMake应该使用文件名或CMake目标名称引用。