2016-11-05 9 views
4

私はclang-tidyとの統合をcmakeと組み合わせて使用​​しようとしており、-check引数を渡したいと思います。私はcmakeのを呼び出すときに-DCMAKE_CXX_CLANG_TIDY="/usr/local/opt/llvm38/bin/clang-tidy-3.8;-checks=*"を追加しようとしましたが、私のメイクは、のように見えるエンドアップコマンド:他の言葉でCMAKE_CXX_CLANG_TIDY変数で使用する追加引数を指定するにはどうすればよいですか

/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/.....

が、それはのように思えます。分離されたargは解析されません。私も目標値を同じ値でターゲットにCXX_CLANG_TIDYのターゲットを設定しようとしたと私は同じ動作を取得します。

誰もが、clang-tidyに、さらにcmakeを通じて追加のargsを呼び出すのですか?

答えて

2

cmakeの3.7.2と打ち鳴らす-きちんと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引数が正しいことを確認する必要があり、それ以外の場合は、黙って失敗しているようです。

0

すべて正しいです。 makefileを生成するときに、makefileがを実行したときに、CMakeはそれらの引数を解析しません。ファイルがコンパイルに成功すると、clang-tidyが自動的に実行されます。

あなたのCMakeLists.txtに直接CMAKE_CXX_CLANG_TIDYを設定してみてください:
set(CMAKE_CXX_CLANG_TIDY "clang-tidy" "-checks=*")

+0

hmmm - それは面白いです。これを私のcmakeファイルに設定すると、ほとんど直ちに失敗します: '/ usr/local/opt/llvm38/bin/clang-tidy-3.8'の実行中にエラーが発生しました。しかし、失敗の詳細はもうありません。私が "-checks = *"引数を省略するとビルドは成功したように見えますが、(おそらく)既定のクラング・ティディーの動作が発生します。 –

関連する問題