我无法修改的传统制作过程会产生一个我必须进行后期处理的目标。
我使用add_custom_target
强制makefile始终运行。
我使用add_custom_command
进行后期处理。
问题是,就CMake而言,add_custom_target无法产生输出。那么,如何为后处理步骤设置依赖?我不想运行这些步骤,除非外部make实际更新了它的目标。
add_custom_command不能将add_custom_target的名称用作DEPENDS。我试过这个,它假设add_custom_target名称只是一个文件而无法找到它。
感谢您的帮助。 干杯!
答案 0 :(得分:3)
使add_custom_command调用依赖于文件,当“外部make实际更新其目标”时,该文件会发生变化。只有当其中一个DEPENDS比其OUTPUT更新时,自定义命令才会运行。
对于CMake add_custom_command调用的DEPENDS,当它们是完整路径文件名引用时,对旧版本的CMake最有效。更新版本的CMake应该使用文件名或CMake目标名称引用。