1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/dist/tools/vera++
Marian Buschsieweke 6ac8aba955
build system: rework EXTERNAL_MODULE_DIRS
Previously, external modules had to be individually added to both
EXTERNAL_MODULE_DIRS and USEMODULE. If those where not in sync, this
resulted in build errors.

With this commit, search folders for external modules are added to
EXTERNAL_MODULE_DIRS instead. So lets say the file system structure is
like this

```
└── /path/to/external/modules
    ├── mod_a
    │   ├── Makefile
    │   ├── Makefile.dep
    │   ├── Makefile.include
    │   ├── foo.c
    │   └── include
    │       └── external_module.h
    └── mod_b
        ├── Makefile
        └── bar.c

```

One now adds `/path/to/external/modules` to EXTERNAL_MODULES and only
with `USEMODULE += mod_a` the corresponding module, dependencies and
include settings are actually used. Hence, it is possible to configure
`EXTERNAL_MODULE_DIRS` from `~/.profile` or `~/.bashrc` once and never
needs to worry about them again.
2021-05-07 21:29:05 +02:00
..
profiles tools/vera++: increase max line length bounds 2021-01-19 16:10:51 +01:00
scripts ci/vera++/rules/L004: remove warning support 2021-01-20 11:04:12 +01:00
check.sh build system: rework EXTERNAL_MODULE_DIRS 2021-05-07 21:29:05 +02:00
exclude
README.md vera++: add README file 2020-02-14 14:17:17 +01:00

Overview

Vera++ is a programmable tool for verification, analysis and transformation of C++ source code. Vera++ is mainly an engine that parses C++ source files and presents the result of this parsing to scripts in the form of various collections - the scripts are actually performing the requested tasks.

Rules

Rules can be added in the rules folder. The default rules from Vera++ were added. However, it's possible to implement new rules in TCL. See https://bitbucket.org/verateam/vera/wiki/Rules for information about the available rules.

Profiles

A riot_force profile was made for describing the set of applied rules as well as special parameters. A riot profile includes all rules that should be treated as warnings. In case new rules are added, they can be updated for both profiles under profiles folder.

Example usage

Check style for all changed files changed in current branch: check.sh

Check all changed files and don't display the results (only exit code): QUIET=1 check.sh

Don't display the warnings WARNING=0 check.sh