summaryrefslogtreecommitdiffstats
path: root/Help/prop_tgt/LANG_CLANG_TIDY_EXPORT_FIXES_DIR.rst
blob: 265fade7537d92e79c6f3893ae25a906b01ed906 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR
----------------------------------

.. versionadded:: 3.26

This property is implemented only when ``<LANG>`` is ``C``, ``CXX``, ``OBJC``
or ``OBJCXX``, and only has an effect when :prop_tgt:`<LANG>_CLANG_TIDY` is
set.

Specify a directory for the ``clang-tidy`` tool to put ``.yaml`` files
containing its suggested changes in. This can be used for automated mass
refactoring by ``clang-tidy``. Each object file that gets compiled will have a
corresponding ``.yaml`` file in this directory. After the build is completed,
you can run ``clang-apply-replacements`` on this directory to simultaneously
apply all suggested changes to the code base. If this property is not an
absolute directory, it is assumed to be relative to the target's binary
directory. This property should be preferred over adding an ``--export-fixes``
or ``--fix`` argument directly to the :prop_tgt:`<LANG>_CLANG_TIDY` property.

At generate-time, in order to avoid passing stale fixes from old code to
``clang-apply-replacements``, CMake will search the directory for any ``.yaml``
files that won't be generated by ``clang-tidy`` during the build, and delete
them. In addition, just before running ``clang-tidy`` on a file, CMake will
delete that file's corresponding ``.yaml`` file in case ``clang-tidy`` doesn't
produce any fixes.

This property is initialized by the value of
the :variable:`CMAKE_<LANG>_CLANG_TIDY_EXPORT_FIXES_DIR` variable if it is set
when a target is created.