[Libreoffice-commits] core.git: config_host.mk.in configure.ac Makefile.in

Riccardo Magliocchetti riccardo.magliocchetti at gmail.com
Wed Nov 5 01:56:22 PST 2014


 Makefile.in       |    8 +++++---
 config_host.mk.in |    1 +
 configure.ac      |    8 ++++++++
 3 files changed, 14 insertions(+), 3 deletions(-)

New commits:
commit c716b3888e7e8150d1c1053ee6550afb56438b1f
Author: Riccardo Magliocchetti <riccardo.magliocchetti at gmail.com>
Date:   Tue Nov 4 16:26:45 2014 +0100

    Add build support for iwyu
    
    include-what-you-use is a tool to help removing unneeded includes.
    Homepage:
    https://code.google.com/p/include-what-you-use/
    
    So to use it pass its path to configure like:
    ./configure --with-iwyu=/usr/bin/include-what-you-use
    
    May be helpful for fdo#42949
    
    Change-Id: Idc185c5181d754b9dfd82fcf6a5ad05953b3cd03
    Reviewed-on: https://gerrit.libreoffice.org/12255
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
    Tested-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/Makefile.in b/Makefile.in
index c13deb4..a051625 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 19bee1a..98dad1d 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 84505ba..26f7b79 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
 #


More information about the Libreoffice-commits mailing list