summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in8
-rw-r--r--config_host.mk.in1
-rw-r--r--configure.ac8
3 files changed, 14 insertions, 3 deletions
diff --git a/Makefile.in b/Makefile.in
index c13deb4f383c..a051625566d7 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -60,6 +60,8 @@ export GMAKE_OPTIONS?=-r$(if $(verbose)$(VERBOSE),,s)$(value $(MAKEFLAGS))
PARALLELISM_OPTION := $(if $(filter-out 0,$(PARALLELISM)),-j $(PARALLELISM),)
+IWYU_OPTION := $(if $(IWYU_PATH),-k CXX=$(IWYU_PATH),)
+
#
# Partial Build
#
@@ -67,13 +69,13 @@ define gb_Top_GbuildModuleRules
.PHONY: $(1) $(1).all $(1).build $(1).check $(1).clean $(1).showdeliverables $(foreach target,$(gb_Top_MODULE_CHECK_TARGETS),$(1).$(target))
$(1): bootstrap fetch
- cd $(SRCDIR)/$(2) && $$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS)
+ cd $(SRCDIR)/$(2) && $$(MAKE) $(IWYU_OPTION) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS)
$(1).build $(1).check $(1).clean $(1).showdeliverables $(foreach target,$(gb_Top_MODULE_CHECK_TARGETS),$(1).$(target)):
cd $(SRCDIR)/$(2) && $$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) $$(patsubst $(1).%,%,$$@)
$(1).all: bootstrap fetch
- $$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(WORKDIR)/Module/$(1) $(if $(CROSS_COMPILING),,$(WORKDIR)/Module/check/$(1) $(WORKDIR)/Module/slowcheck/$(1))
+ $$(MAKE) $(PARALLELISM_OPTION) $(IWYU_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(WORKDIR)/Module/$(1) $(if $(CROSS_COMPILING),,$(WORKDIR)/Module/check/$(1) $(WORKDIR)/Module/slowcheck/$(1))
endef
@@ -230,7 +232,7 @@ build: bootstrap fetch $(if $(CROSS_COMPILING),cross-toolset)
ifneq ($(filter-out WNT MACOSX IOS ANDROID,$(OS)),)
mkdir -p $(INSTDIR) && install-gdb-printers -a $(INSTDIR) -c
endif
- $(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(build_goal)
+ $(MAKE) $(PARALLELISM_OPTION) $(IWYU_OPTION) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(build_goal)
ifeq ($(OS),IOS)
$(MAKE) $(PARALLELISM_OPTION) $(GMAKE_OPTIONS) ios
endif
diff --git a/config_host.mk.in b/config_host.mk.in
index 19bee1a2496e..98dad1d02259 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -283,6 +283,7 @@ export INSTDIR=@INSTDIR@
export INSTDIR_FOR_BUILD=@INSTDIR_FOR_BUILD@
export INSTROOT=@INSTROOT@
export INSTROOT_FOR_BUILD=@INSTROOT_FOR_BUILD@
+export IWYU_PATH=@IWYU_PATH@
export JAVACISGCJ=@JAVACISGCJ@
export JAVACOMPILER=@JAVACOMPILER@
export JAVADOC=@JAVADOC@
diff --git a/configure.ac b/configure.ac
index 84505ba67215..26f7b79de9ce 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2093,6 +2093,12 @@ AC_ARG_WITH(gssapi,
where a good system GSSAPI is available.]),
,)
+AC_ARG_WITH(iwyu,
+ AS_HELP_STRING([--with-iwyu],
+ [Provide IWYU binary path to check unneeded includes instead of building.
+ Use only if you are hacking on it.]),
+,)
+
dnl ===================================================================
dnl Branding
dnl ===================================================================
@@ -12503,6 +12509,8 @@ else
fi
AC_SUBST(PARALLELISM)
+IWYU_PATH="$with_iwyu"
+AC_SUBST(IWYU_PATH)
#
# Set up ILIB for MSVC build
#