将USES_TERMINAL参数修改为COMMAND_ECHO和COMMAND_OUTPUT的参数组合,并在add_custom_command中指定命令的输出文件。示例代码如下:
add_custom_command(TARGET my_target
PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E echo "[INFO] running my command"
COMMAND ${CMAKE_COMMAND} -E my_command "input.txt" "output.txt"
COMMAND ${CMAKE_COMMAND} -E echo "[INFO] my command finished"
COMMAND_EXPAND_LISTS
OUTPUT "output.txt"
VERBATIM
)
其中,COMMAND_ECHO参数用于控制命令在CMake输出中的可见性,它可以取值为'ON'或者'OFF',默认为'OFF'。 COMMAND_OUTPUT参数用于将命令的输出重定向到指定的文件中。在这个例子中,我们将命令的输出重定向到output.txt文件中。
注意,在使用这种方法时,需要在生成器中指定“-v”选项来启用命令输出的实时更新。例如,对于Ninja生成器,可以使用以下命令来启用实时输出:
ninja -v