2016-11-05 1 views
4

Ich versuche zu verwenden verwenden clang-tidy Integration mit cmake und ich möchte das -check Argument übergeben. Ich habe -DCMAKE_CXX_CLANG_TIDY="/usr/local/opt/llvm38/bin/clang-tidy-3.8;-checks=*" versucht, das Hinzufügen, wenn Cmake Aufruf, aber meine Make-Datei Befehle Ende aussehen wie:Wie kann ich zusätzliche Argumente für die Verwendung mit CMAKE_CXX_CLANG_TIDY Variable

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

mit anderen Worten, es scheint, wie die; getrennte Argumente werden nicht auseinandergeteilt. Ich habe auch versucht, die Zieleigenschaft CXX_CLANG_TIDY direkt auf mein Ziel mit dem gleichen Wert zu setzen, und ich bekomme das gleiche Verhalten.

Hat jemand erfolgreich clang-tidy mit zusätzlichen Argumenten durch cmake aufgerufen?

Antwort

2

Es ist, als mit cmake 3.7.2 und Klirren-ordentlich 4.0 erwartet funktioniert.

z. direkt Angabe auf der Kommandozeile:

cmake -DCMAKE_CXX_CLANG_TIDY="clang-tidy;-style=file;-checks=*" 

oder im CMakeLists.txt:

set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-style=file;-checks=*") 

Sie müssen sicherstellen, dass die clang-tidy Argumente korrekt sind, sonst ist es still zu versagen scheint.

0

Alles ist korrekt. CMake analysiert diese Argumente beim Generieren des Makefiles nicht, aber wenn das Makefile ausgeführt wird. Wenn eine Datei erfolgreich kompiliert wurde, wird Clang-Tidy automatisch ausgeführt.

Sie könnten versuchen, CMAKE_CXX_CLANG_TIDY direkt in Ihrem CMakeLists.txt Einstellung:
set(CMAKE_CXX_CLANG_TIDY "clang-tidy" "-checks=*")

+0

hmmm - das ist interessant. Wenn ich dies in meiner cmake-Datei einstelle, scheitere ich fast sofort mit: 'Fehler beim Ausführen '/ usr/local/opt/llvm38/bin/clang-ordentlich-3.8'. Es gibt jedoch keine weiteren Details über den Fehler. Wenn ich das Argument "-checks = *" weglasse, scheint der Build erfolgreich zu sein, aber ich bekomme das (vermutlich) Standardverhalten von clang-tidy. –

Verwandte Themen