clang-tidy cmake exclure le fichier de la vérification

j'ai une dépendance comme source dans mon projet sur laquelle je n'ai aucun contrôle. J'utilise l'intégration clang-tidy de cmake pour analyser mon code, et cette dépendance déclenche beaucoup d'Avertissements. Est-il un moyen de dire à cmake ne pas courir clang-coquette sur certains dossiers ?

J'ai essayé d'ajouter les fichiers à l'option -line-filter de clang-tidy, mais cela ne fonctionne pas:

set_target_properties(target PROPERTIES
CXX_CLANG_TIDY "${clang_tidy_loc};
${TIDY_CONFIG} 
-line-filter="[
{"name":"path/to/file.cpp"},
{"name":"path/to/file.h"}
]"")

si la solution pouvait fonctionner avec d'autres analyseurs statiques tels que cppcheck ce serait vraiment gentil. Grâce.

2
demandé sur Niverton 2018-03-31 22:54:10

1 réponses

si une propriété - comme CXX_CLANG_TIDY - n'est disponible qu'au niveau cible, vous devez déplacer les fichiers pour lesquels vous voulez avoir des paramètres différents dans une nouvelle cible séparée.

cela peut être fait en utilisant OBJECT bibliothèques .

dans votre cas quelque chose comme:

add_library(
    target_no_static_code_analysis
    OBJECT
        path/to/file.cpp
        path/to/file.h
)

# NOTE: Resetting only needed if you have a global CMAKE_CXX_CLANG_TIDY
set_target_properties(
    target_no_static_code_analysis
    PROPERTIES
         CXX_CLANG_TIDY ""
)

...
add_library(target ${other_srcs} $<TARGET_OBJECTS:target_no_static_code_analysis>)

Références

2
répondu Florian 2018-03-31 20:12:15