我的CMake项目中的大多数消息都是彩色的。在 Windows 中,仅当用户下载了ansicon.exe
时,颜色才会显示,否则会打印一个奇怪的字符。因此,我想在尝试为消息着色之前检查命令ansicon
是否存在。
我尝试这样做,希望WIN_COLOR
能告诉我该命令是否存在:
execute_process(
COMMAND "ansicon"
RESULT_VARIABLE WIN_COLOR
)
它确实如此,但它实际上运行 ansicon.exe
,它运行命令提示符的新实例,有效地停止配置过程。
有没有更好的方法?我最终必须浏览目录吗?
您可以使用find_program
find_program(WIN_COLOR "ansicon")
IF(WIN_COLOR)
...
ENDIF()