From d60a263896e88335bc83ffa34072182aaca0839a Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Sun, 13 Oct 2024 14:49:37 -0400 Subject: [PATCH] Add `make fixincludes` target to invoke iwyu --- src/.iwyu-overrides.imp | 12 ++++++++++++ src/GNUmakefile | 9 +++++++++ 2 files changed, 21 insertions(+) create mode 100644 src/.iwyu-overrides.imp diff --git a/src/.iwyu-overrides.imp b/src/.iwyu-overrides.imp new file mode 100644 index 0000000..36dd002 --- /dev/null +++ b/src/.iwyu-overrides.imp @@ -0,0 +1,12 @@ +[ +# Override for bugs at time of writing (8.22): +{ symbol: [ "va_start", private, "", public ] }, +{ symbol: [ "va_arg", private, "", public ] }, +{ symbol: [ "va_end", private, "", public ] }, +{ symbol: [ "SIGIO", private, "", public ] }, +{ symbol: [ "SIGTSTP", private, "", public ] }, +{ symbol: [ "SIGPOLL", private, "", public ] }, +{ symbol: [ "SIGWINCH", private, "", public ] }, +{ symbol: [ "SIGCONT", private, "", public ] }, +{ symbol: [ "size_t", private, "", public ] }, +] diff --git a/src/GNUmakefile b/src/GNUmakefile index 534c487..51522f3 100644 --- a/src/GNUmakefile +++ b/src/GNUmakefile @@ -19,6 +19,10 @@ CFLAGS := -g -MMD -Wall -I. -O2 $(shell pkg-config --cflags $(REQUIRED_PKGS)) \ LDFLAGS := $(shell pkg-config --libs $(REQUIRED_PKGS)) \ $(LIBSIXEL_LDFLAGS) $(NCURSES_LDFLAGS) +IWYU = iwyu +IWYU_FLAGS = --error --mapping_file=.iwyu-overrides.imp +IWYU_TRANSFORMED_FLAGS = $(patsubst %,-Xiwyu %,$(IWYU_FLAGS)) $(CFLAGS) + HELP_FILES = \ ../COPYING.md \ help/common.md \ @@ -96,6 +100,11 @@ wadgadget : $(OBJS) %.o : %.c $(CC) $(CFLAGS) -c $< -o $@ +fixincludes: + for d in $(patsubst %.o,%.c,$(OBJS)); do \ + $(IWYU) $(IWYU_TRANSFORMED_FLAGS) 2>&1 $$d | fix_include; \ + done + help_text.c: $(HELP_FILES) help/make_help.py help/make_help.py $(HELP_FILES) > $@