有没有办法在不使用 CMake 运行的情况下检查 ansicon.exe 是否存在?

oct*_*pod 1 windows command cmake console-application

我的 CMake 项目中的大多数消息都是彩色的。在 Windows 中,颜色仅显示用户是否已ansicon.exe下载,否则打印一个奇怪的字符。因此,我想ansicon在尝试为消息着色之前检查该命令是否存在。

我试图这样做,希望WIN_COLOR能告诉我命令是否存在:

execute_process(
    COMMAND "ansicon"
    RESULT_VARIABLE WIN_COLOR
)
Run Code Online (Sandbox Code Playgroud)

它确实如此,但它实际上运行 ansicon.exe,它运行命令提示符的新实例,有效地停止配置过程。

有没有更好的办法?我必须最终查看目录吗?

Pet*_*ter 6

您可以使用find_program

find_program(WIN_COLOR "ansicon")
IF(WIN_COLOR)
   ...
ENDIF()
Run Code Online (Sandbox Code Playgroud)