summaryrefslogtreecommitdiff
path: root/compilerplugins/README
blob: a9881c7f35994056e2f5fcc3e85bb71e1d9ffcf3 (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Compiler plugins.


== Overview ==

This directory contains code for compiler plugins. These are used to perform
additional actions during compilation (such as additional warnings) and
also to perform mass code refactoring.

Currently only the Clang compiler is supported (http://wiki.documentfoundation.org/Development/Clang).


== Usage ==

Compiler plugins are enabled automatically by --enable-dbgutil if Clang headers
are found or explicitly using --enable-compiler-plugins.


== Functionality ==

There are two kinds of plugin actions:
- compile checks - these are run during normal compilation
- rewriters - these must be run manually and modify source files

Each source has a comment saying whether it's compile check or a rewriter
and description of functionality.

=== Compile checks ===

Used during normal compilation to perform additional checks.
All warnings and errors are marked '[loplugin]' in the message.


=== Rewriters ===

Rewriters analyse and possibly modify given source files.
Usage: make COMPILER_PLUGIN_TOOL=<rewriter_name>
Additional optional make arguments:
- it is possible to also pass FORCE_COMPILE_ALL=1 to make to trigger rebuild of all source files,
    even those that are up to date.
- UPDATE_FILES=<scope> - limits which modified files will be actually written back with the changes
    - mainfile - only the main .cxx file will be modifed (default)
    - all - all source files involved will be modified (possibly even header files from other LO modules),
        3rd party header files are however never modified
    - <module> - only files in the given LO module (toplevel directory) will be modified (including headers)

Modifications will be written directly to the source files.


== Code documentation / howtos ==

http://wiki.documentfoundation.org/Clang_plugins

tching in gbuild-to-ide.Ashod Nakashian 2015-01-08brute-force find-and-remove of unused #define constants.Noel Grandin 2015-01-07drop crashrep unused since start of LibreOfficeCaolán McNamara 2014-12-22env is in /usr/bin, not in /binArnaud Versini 2014-12-22Add MS Visio file extensions to bash completionKatarina Behrens 2014-12-22callcatcher: update unused codeCaolán McNamara 2014-12-19Fix fallout from a2e4be6ded508030a6c2a33919cbe8cb504382e0Tor Lillqvist 2014-12-10bin/run LO_TRACE hookStephan Bergmann 2014-12-04bin/run: add WNT supportMichael Stahl 2014-12-04bin/run: Adapt to run on Debian so-called GNU/Linux systems tooMichael Stahl 2014-12-02Fold URE: Remove OO_SDK_URE_HOME on non-WindowsStephan Bergmann 2014-11-28Fold URE: Linux ure/lib/* -> program/Stephan Bergmann 2014-11-24improvements to iwyudummy targetNoel Grandin 2014-11-18Kill check-merged.sh, 'git cherry' actually gives better results.Jan Holesovsky 2014-11-18No need to cd into instdir/programStephan Bergmann 2014-11-18check-merged.sh: Fix an obvious typo.Jan Holesovsky 2014-11-18pch: jpeg's headers conflict with INT32 typedef when in pch.Jan Holesovsky 2014-11-17drop gnome-open-url binaryCaolán McNamara 2014-11-17add a script to generate a dummy library to "build" all headersMichael Stahl 2014-11-17bin/run: add a license headerMichael Stahl 2014-11-17parse-perfcheck : add filename to csv resultsLaurent Godard 2014-11-15Fix typo in bin/check-merged.shAndrea Gelmini 2014-11-14Cleanup parse-perfcheck.pyRiccardo Magliocchetti 2014-11-14Script that finds commits in a branch that were not pushed to master.Jan Holesovsky 2014-11-12Adapt bin/run for OS XStephan Bergmann 2014-11-12Parse perfcheck resultsLaurent Godard