Commit Graph

3 Commits

Author SHA1 Message Date
Ashish Sadanandan
fcacc319d9 IWYU: Return error code if user enables error reporting
Previously CMake ignored the return code from iwyu because old versions
of the tool would exit with an error code even when no header include
violations were detected.  The iwyu project has since changed this
behavior, so the tool no longer returns an error code unless the user
enables error reporting via command line arguments.

Behavior seen with iwyu version 0.19

Source file with missing includes:
 - Case 1: iwyu arguments:
   - return code: 0
   - output: <report of all missing includes>
 - Case 2: iwyu arguments: `-Xiwyu --error`
   - return code: 1
   - output: <report of all missing includes>

Source file with no missing includes:
 - Case 1: iwyu arguments:
   - return code: 0
   - output: `(/path/to/file.cc has correct #includes/fwd-decls)`
 - Case 2: iwyu arguments: `-Xiwyu --error`
   - return code: 0
   - output: `(/path/to/file.cc has correct #includes/fwd-decls)`

Teach CMake to return the iwyu return code if the user has invoked the
tool with any of these command line arguments included:
 - `--error[=N]`
 - `--error_always[=N]`

Fixes: #24066
2023-04-25 11:18:36 -04:00
Brad King
b3475ba57b Makefile: Fix <LANG>_INCLUDE_WHAT_YOU_USE with CTEST_USE_LAUNCHERS
The 'ctest --launch' command must be placed before the IWYU launcher on
the compiler command line.  Extend the RunCMake.IncludeWhatYouUse test
to cover this case.  The Ninja generator already does it correctly.
2015-05-22 08:44:46 -04:00
Brad King
ada5ffce7b Add options to run include-what-you-use with the compiler
Create a <LANG>_INCLUDE_WHAT_YOU_USE target property (initialized by a
CMAKE_<LANG>_INCLUDE_WHAT_YOU_USE variable) to specify an IWYU command
line to be run along with the compiler.
2015-05-19 13:16:29 -04:00