Lines Matching +full:build +full:- +full:clang
5 Clang provides infrastructure to write tools that need syntactic and semantic
7 the different ways to write clang tools, and their pros and cons.
10 --------
12 `LibClang <http://clang.llvm.org/doxygen/group__CINDEX.html>`_ is a stable high
13 level C interface to clang. When in doubt LibClang is probably the interface
20 * Clang Python Bindings
24 * want to interface with clang from other languages than C++
26 * want powerful high-level abstractions, like iterating through an AST with a
27 cursor, and don't want to learn all the nitty gritty details of Clang's AST.
31 * want full control over the Clang AST
33 Clang Plugins
34 -------------
36 :doc:`Clang Plugins <ClangPlugins>` allow you to run additional actions on the
38 runtime by the compiler, and they're easy to integrate into your build
41 Canonical examples of when to use Clang Plugins:
43 * special lint-style warnings or errors for your project
44 * creating additional build artifacts from a single compile step
46 Use Clang Plugins when you...:
49 * want your tool to make or break a build
50 * need full control over the Clang AST
52 Do not use Clang Plugins when you...:
54 * want to run tools outside of your build environment
55 * want full control on how Clang is set up, including mapping of in-memory
61 ----------
64 tools, as well as integrating into services that run clang tools. Canonical
73 independently of the build system
74 * want full control over the Clang AST
75 * want to share code with Clang Plugins
79 * want to run as part of the build triggered by dependency changes
85 :doc:`Clang tools <ClangTools>` are a collection of specific developer tools
86 built on top of the LibTooling infrastructure as part of the Clang project.
90 Examples of tools we are building or planning as part of the Clang project:
92 * Syntax checking (:program:`clang-check`)
93 * Automatic fixing of compile errors (:program:`clang-fixit`)
94 * Automatic code formatting (:program:`clang-format`)