git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Garrit Franke <garrit@slashdev.space>
To: avarab@gmail.com
Cc: garrit@slashdev.space, git@vger.kernel.org, gitster@pobox.com
Subject: [PATCH v2 1/4] contrib: add iwyu script
Date: Tue,  5 Apr 2022 13:45:04 +0200	[thread overview]
Message-ID: <20220405114505.24389-2-garrit@slashdev.space> (raw)
In-Reply-To: <20220331194436.58005-1-garrit@slashdev.space>

add include-what-you-use helper.

Signed-off-by: Garrit Franke <garrit@slashdev.space>
---
 contrib/iwyu/README  | 33 +++++++++++++++++++++++++++++++++
 contrib/iwyu/iwyu.sh |  2 ++
 2 files changed, 35 insertions(+)
 create mode 100644 contrib/iwyu/README
 create mode 100755 contrib/iwyu/iwyu.sh

diff --git a/contrib/iwyu/README b/contrib/iwyu/README
new file mode 100644
index 0000000000..5e2d218602
--- /dev/null
+++ b/contrib/iwyu/README
@@ -0,0 +1,33 @@
+Include What You Use
+====================
+
+Include what you use (iwyu) [1] is a tool that points out which headers a file
+should include. Moreover, it can point out includes that are not used by a file,
+which makes it especially handy for cleanup tasks.
+
+To run this script, you will need iwyu to be installed on your system.
+
+The "iwyu.sh" script runs iwyu on a given object and omits mandatory headers
+defined in "Documentation/CodingGuidelines".
+
+Example usage:
+
+    ./contrib/iwyu/iwyu.sh diff.o
+
+This yields:
+
+    diff.c should remove these lines:
+    - #include "attr.h"  // lines 13-13
+    - #include "submodule-config.h"  // lines 18-18
+
+In its current form, this script should not be used to auto-generate patches,
+since there are still some false-positives that only a human can resolve. It is
+meant as a starting point for further cleanups. It could be nice to integrate
+this as a step in our CI, but we're not quite there yet.
+
+The inspiration for this script came from this [2] email-thread.
+
+Garrit Franke <garrit@slashdev.space>
+
+[1]: https://github.com/include-what-you-use/include-what-you-use
+[2]: https://lore.kernel.org/all/220401.8635ixp3f4.gmgdl@evledraar.gmail.com/#t
\ No newline at end of file
diff --git a/contrib/iwyu/iwyu.sh b/contrib/iwyu/iwyu.sh
new file mode 100755
index 0000000000..3ef8639eae
--- /dev/null
+++ b/contrib/iwyu/iwyu.sh
@@ -0,0 +1,2 @@
+make $1 CC=include-what-you-use CFLAGS="-Xiwyu --verbose=1" 2>&1 \
+| grep -v -E -e '^#include <' -e '^#include "(cache|git-compat-util|gettext)\.h"' 
\ No newline at end of file
-- 
2.35.1


  parent reply	other threads:[~2022-04-05 12:59 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-31 19:44 [PATCH] bisect.c: remove unused includes Garrit Franke
2022-03-31 21:29 ` Junio C Hamano
2022-04-01  8:07   ` using iwyu (include-what-you-use) to analyze includes (was: [PATCH] bisect.c: remove unused includes) Ævar Arnfjörð Bjarmason
2022-04-05 11:45 ` [PATCH v2 0/4] various: use iwyu (include-what-you-use) to analyze includes Garrit Franke
2022-04-06  7:54   ` Ævar Arnfjörð Bjarmason
2022-04-05 11:45 ` Garrit Franke [this message]
2022-04-06  7:40   ` [PATCH v2 1/4] contrib: add iwyu script Ævar Arnfjörð Bjarmason
2022-04-05 11:45 ` [PATCH v2 2/4] bisect.c: remove unnecessary include Garrit Franke
2022-04-06  7:50   ` Ævar Arnfjörð Bjarmason
2022-04-06 16:41     ` Junio C Hamano
2022-04-05 11:45 ` [PATCH v2 3/4] serve.c: " Garrit Franke
2022-04-05 11:45 ` [PATCH v2 4/4] apply.c: " Garrit Franke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220405114505.24389-2-garrit@slashdev.space \
    --to=garrit@slashdev.space \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).