From 0030245d2a15d68c80d458260366e84d0cdcaa86 Mon Sep 17 00:00:00 2001 From: Robin Leroy Date: Sun, 17 Jan 2016 22:40:48 +0100 Subject: [PATCH] iwyu --- Makefile | 10 +++++----- iwyu.imp | 2 +- ...dies_iwyu_mapping.awk => iwyu_generate_mappings.awk | 8 ++++++++ 3 files changed, 14 insertions(+), 6 deletions(-) rename generate_no_include_bodies_iwyu_mapping.awk => iwyu_generate_mappings.awk (68%) diff --git a/Makefile b/Makefile index 9b9386be34..2f02a9974c 100644 --- a/Makefile +++ b/Makefile @@ -166,10 +166,10 @@ FIX_INCLUDES := deps/include-what-you-use/bin/fix_includes.py IWYU_CHECK_ERROR := tee /dev/tty | test ! "`grep ' error: '`" IWYU_TARGETS := $(wildcard */*.cpp) -no_include_bodies: - ls */*_body.hpp | awk -f generate_no_include_bodies_iwyu_mapping.awk > no_include_bodies.imp +iwyu_generate_mappings: + {ls */*_body.hpp && ls */*.generated.h} | awk -f iwyu_generate_mappings.awk > iwyu_generated_mappings.imp -%.cpp!!iwyu: no_include_bodies +%.cpp!!iwyu: iwyu_generate_mappings $(IWYU) $(CXXFLAGS) $(subst !SLASH!,/, $*.cpp) $(IWYU_FLAGS) 2>&1 | tee $(subst !SLASH!,/, $*.iwyu) | $(IWYU_CHECK_ERROR) $(REMOVE_BOM) $(FIX_INCLUDES) < $(subst !SLASH!,/, $*.iwyu) | cat @@ -179,12 +179,12 @@ iwyu: $(subst /,!SLASH!, $(addsuffix !!iwyu, $(IWYU_TARGETS))) rm no_include_bodies.imp rm */*.iwyu -%.cpp!!iwyu_unsafe: no_include_bodies +%.cpp!!iwyu_unsafe: iwyu_generate_mappings $(IWYU) $(CXXFLAGS) $(subst !SLASH!,/, $*.cpp) $(IWYU_FLAGS) $(IWYU_CHECK_ALL_HPP) 2>&1 | tee $(subst !SLASH!,/, $*.iwyu) | $(IWYU_CHECK_ERROR) $(REMOVE_BOM) $(FIX_INCLUDES) $(IWYU_NOSAFE_HEADERS) < $(subst !SLASH!,/, $*.iwyu) | cat $(RESTORE_BOM) iwyu_unsafe: $(subst /,!SLASH!, $(addsuffix !!iwyu_unsafe, $(IWYU_TARGETS))) - rm no_include_bodies.imp + rm iwyu_generated_mappings.imp rm */*.iwyu diff --git a/iwyu.imp b/iwyu.imp index 7cc0bd19bd..646df2e9e2 100644 --- a/iwyu.imp +++ b/iwyu.imp @@ -1,5 +1,5 @@ [ - { ref: no_include_bodies.imp }, + { ref: iwyu_generated_mappings.imp }, { symbol: ["std::string", private, "", public] }, { include: ["<__functional_base>", private, "", public] }, { include: ["<__tree>", private, "", public] }, diff --git a/generate_no_include_bodies_iwyu_mapping.awk b/iwyu_generate_mappings.awk similarity index 68% rename from generate_no_include_bodies_iwyu_mapping.awk rename to iwyu_generate_mappings.awk index b3a0f69aad..b48578345a 100644 --- a/generate_no_include_bodies_iwyu_mapping.awk +++ b/iwyu_generate_mappings.awk @@ -14,6 +14,14 @@ BEGIN { } } +/^(.*)\.generated\.h/ { + body = $0 + header = body + sub(/\.generated\.h$/, ".h", header) + print "{ include: [\"\\\"" body "\\\"\", private, \"\\\"" header "\\\"\", public] }," +} + + END { print "]" }