如何指定与 CMAKE_CXX_CLANG_TIDY 变量一起使用的其他参数
How can I specify additional arguments for use with CMAKE_CXX_CLANG_TIDY variable
我正在尝试使用 make use of clang-tidy integration with cmake 并且我想传递 -check
参数。我尝试在调用 cmake 时添加 -DCMAKE_CXX_CLANG_TIDY="/usr/local/opt/llvm38/bin/clang-tidy-3.8;-checks=*"
,但我的 makefile 命令最终看起来像:
/usr/local/Cellar/cmake/3.6.2/bin/cmake -E __run_iwyu --tidy="/usr/local/opt/llvm38/bin/clang-tidy-3.8;-checks=*" --source=/Users/ellery/work/.....
换句话说,好像是;分隔的 args 没有被分开解析。我也试过直接在我的目标上设置目标 属性 CXX_CLANG_TIDY
相同的值,我得到了相同的行为。
有没有人通过 cmake 使用额外的参数成功调用 clang-tidy
?
一切正确。 CMake 在生成 makefile 时不解析这些参数,而是在 执行 时解析这些参数。当文件编译成功后,会自动执行clang-tidy
您可以尝试直接在 CMakeLists.txt 中设置 CMAKE_CXX_CLANG_TIDY:
set(CMAKE_CXX_CLANG_TIDY "clang-tidy" "-checks=*")
它在 cmake 3.7.2 和 clang-tidy 4.0 中按预期工作。
例如直接在命令行指定:
cmake -DCMAKE_CXX_CLANG_TIDY="clang-tidy;-style=file;-checks=*"
或在 CMakeLists.txt:
set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-style=file;-checks=*")
您必须确保 clang-tidy
参数正确,否则它似乎会无提示地失败。
我正在尝试使用 make use of clang-tidy integration with cmake 并且我想传递 -check
参数。我尝试在调用 cmake 时添加 -DCMAKE_CXX_CLANG_TIDY="/usr/local/opt/llvm38/bin/clang-tidy-3.8;-checks=*"
,但我的 makefile 命令最终看起来像:
/usr/local/Cellar/cmake/3.6.2/bin/cmake -E __run_iwyu --tidy="/usr/local/opt/llvm38/bin/clang-tidy-3.8;-checks=*" --source=/Users/ellery/work/.....
换句话说,好像是;分隔的 args 没有被分开解析。我也试过直接在我的目标上设置目标 属性 CXX_CLANG_TIDY
相同的值,我得到了相同的行为。
有没有人通过 cmake 使用额外的参数成功调用 clang-tidy
?
一切正确。 CMake 在生成 makefile 时不解析这些参数,而是在 执行 时解析这些参数。当文件编译成功后,会自动执行clang-tidy
您可以尝试直接在 CMakeLists.txt 中设置 CMAKE_CXX_CLANG_TIDY:
set(CMAKE_CXX_CLANG_TIDY "clang-tidy" "-checks=*")
它在 cmake 3.7.2 和 clang-tidy 4.0 中按预期工作。
例如直接在命令行指定:
cmake -DCMAKE_CXX_CLANG_TIDY="clang-tidy;-style=file;-checks=*"
或在 CMakeLists.txt:
set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-style=file;-checks=*")
您必须确保 clang-tidy
参数正确,否则它似乎会无提示地失败。