[Development] Qt API review with clazy

Ch'Gans chgans at gna.org
Mon Sep 12 08:38:31 CEST 2016

On 12 September 2016 at 10:34, Sergio Martins <sergio.martins at kdab.com> wrote:
> On Sunday, 11 September 2016 21:43:46 WEST Jérémie Delaitre wrote:
>> Can the same checks be implemented in clang-tidy instead of having yet
>> another tool? clang-tidy now has boost specific checks so maybe they would
>> also accept a Qt specific module in there.
> I haven't been able to use clang-tidy on big qmake projects such as Qt, it
> either crashes or stops with "include not found" errors. It also requires an
> intermediate step, where you generate a "compiler command database" file with
> yet another tool [1]

Both CMake (since 2.8.5, see [1]) and Qbs (master branch) can generate
this "compiler command database".
Maybe your tool could be made to work with this DB (via clang-tidy)
and as a clang plugin.
The DB approach has the added advantage that it doesn't require
modifying CXX flags, which can be a problem on projects that have
"buggy" build files.
Having your checks run by clang-tidy would also definitely widen your user base.
clang-tidy have specific rules for LLVM, boost, google, ... Would be
nice to add Qt.


[1] http://clang.llvm.org/docs/JSONCompilationDatabase.html#supported-systems

> clazy, otoh, is a compiler plugin, it integrates with your normal compilation
> run, you don't have to run any more tools after doing "make" as you usually
> do.
> Enabling clazy is just a matter of modifying your CXX flags,  which you can
> easily do with qmake or mkspec. Or ENABLE_CLAZY in CMake if you're building
> KDE.
> [1] https://github.com/rizsotto/Bear
> Regards,
> --
> Sérgio Martins | sergio.martins at kdab.com | Senior Software Engineer
> Klarälvdalens Datakonsult AB, a KDAB Group company
> Tel: Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
> KDAB - The Qt Experts
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

More information about the Development mailing list