./devel/include-what-you-use, Analyze #includes in C and C++ source files

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.22nb3, Package name: include-what-you-use-0.22nb3, Maintainer: pkgsrc-users

"Include what you use" means this: for every symbol (type, function
variable, or macro) that you use in foo.cc, either foo.cc or foo.h
should #include a .h file that exports the declaration of that symbol.
The include-what-you-use tool is a program that can be built with the
clang libraries in order to analyze #includes of source files to find
include-what-you-use violations, and suggest fixes for them.

The main goal of include-what-you-use is to remove superfluous #includes.
It does this both by figuring out what #includes are not actually needed for
this file (for both .cc and .h files), and replacing #includes with
forward-declares when possible.


Required to run:
[lang/clang] [lang/python37]

Required to build:
[pkgtools/cwrappers] [lang/gcc5]

Master sites:

Filesize: 778.009 KB

Version history: (Expand)


CVS history: (Expand)


   2024-04-22 09:48:47 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
include-what-you-use: updated to 0.21

iwyu 0.21 compatible with llvm+clang 17 is released. Major changes:

[iwyu] Improve analysis of type aliases (typedef and using)
[iwyu] Improve analysis of namespace aliases (namespace xyz = foobar)
[iwyu] Improve support for elaborated forward declarations (typedef struct Foo Bar;)
[iwyu] Improve handling of "autocast" and function return types, \ 
particularly with complex template types.
[iwyu] Add new IWYU pragma: always_keep, which lets a header announce that it \ 
should always be kept wherever included
[iwyu] Automatically use builtin libc++ mappings if libc++ is the active \ 
standard library
[mappings] Improve mappings for libc++ and posix headers
   2023-11-08 14:21:43 by Thomas Klausner | Files touched by this commit (2377)
Log message:
*: recursive bump for icu 74.1
   2023-10-06 21:25:48 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
include-what-you-use: updated to 0.20

IWYU 0.20

[iwyu] Support IWYU pragma: export for forward-declarations
[iwyu] Silently break cycles in mappings instead of crashing
[iwyu] Require full type inside typeid()
[iwyu] Improve template reporting and resugaring
[iwyu] Improve reporting of explicit template instantiations
[iwyu] Fix a few crashers
[iwyu] Improve logging (many small fixes)
Abandon python2 for scripts in favor of python3
   2023-08-14 07:25:36 by Thomas Klausner | Files touched by this commit (1247)
Log message:
*: recursive bump for Python 3.11 as new default
   2023-07-18 16:11:18 by Nia Alarie | Files touched by this commit (35)
Log message:
devel: Adapt packages to use USE_(CC|CXX)_FEATURES
   2023-04-19 10:12:01 by Adam Ciarcinski | Files touched by this commit (2359) | Package updated
Log message:
revbump after textproc/icu update
   2022-11-23 17:21:30 by Adam Ciarcinski | Files touched by this commit (1878) | Package updated
Log message:
massive revision bump after textproc/icu update
   2022-11-14 19:53:25 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
include-what-you-use: updated to 0.19

IWYU 0.19
Compatible with Clang 15.

[iwyu] New --comment_style option to control verbosity of 'why' comments
[iwyu] New --regex option to select regex dialect
[iwyu] Add support for regex replacement in mappings
[iwyu] Add begin_keep/end_keep pragmas for protecting ranges of includes or \ 
forward-declares
[iwyu] Fix several crasher bugs for unusual inputs
[iwyu] More exhaustive handling of type aliases and enums
[iwyu] Recognize IWYU pragmas in CRLF source files
[iwyu] Respect configured toolchain on macOS (and overrides via -nostdinc++ + \ 
-isystem)
[fix_includes] Recognize namespace alias declarations
[mappings] Improve mappings for POSIX and libc headers
[cmake] Build now requires a C++17 compiler (as does LLVM)
[cmake] Support LLVM external project build (see README)