首页 > 解决方案 > 有什么方法可以在 cmake 中检测程序的版本吗?

问题描述

我尝试使用 clang-format 来格式化我的 cpp 项目。我的cmake文件如下:

... 
find_program(CLANG_FORMAT_BIN_NAME NAMES clang-format-3.8 PATH /usr/bin/)
if(NOT CLANG_FORMAT_BIN_NAME-NOTFOUND)
    file(GLOB_RECURSE ALL_SOURCE_FILES *.cc *.h)
    add_custom_target(
            clang-format
            COMMAND ${CLANG_FORMAT_BIN_NAME}
            -style=google
            -i
            ${ALL_SOURCE_FILES}
    )
endif()
... 

当我使用make clang-format时,一切顺利。现在让我们更进一步,我想使用 clang-format 而不指定其确切版本。有没有办法实现这个目标?我试图像这样更改我的 CMakeLists.txt:

find_program(CLANG_FORMAT_BIN_NAME NAMES clang-format-* PATH /usr/bin/)
if(NOT CLANG_FORMAT_BIN_NAME-NOTFOUND)
    file(GLOB_RECURSE ALL_SOURCE_FILES *.cc *.h)
    add_custom_target(
            clang-format
            COMMAND ${CLANG_FORMAT_BIN_NAME}
            -style=google
            -i
            ${ALL_SOURCE_FILES}
    )
endif()

但它没有用。

标签: c++cmakeclang-format

解决方案


推荐阅读