From cf4699895ad99b83a24e376007750e2c2c0502f6 Mon Sep 17 00:00:00 2001 From: "C. Sean Young" Date: Tue, 9 Jun 2015 12:35:45 -0500 Subject: [PATCH] Add new variable SCAN_EXCLUDE_DIRS; specifies directories to exclude when searching source tree. These directories are excluded in addition to OUT_DIR. This can be useful if your build system has other output directories beyond what OUT_DIR is set to. Change-Id: I6d98a85bcc8c89279e939406a7fec32547e8922f --- core/cleanspec.mk | 2 +- core/config.mk | 4 ++++ core/definitions.mk | 2 +- core/envsetup.mk | 5 +++++ core/main.mk | 2 +- 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/core/cleanspec.mk b/core/cleanspec.mk index 500ce54f6c..4441e2ac3f 100644 --- a/core/cleanspec.mk +++ b/core/cleanspec.mk @@ -64,6 +64,6 @@ INTERNAL_CLEAN_BUILD_VERSION := 6 # ************************************************ subdir_cleanspecs := \ - $(shell build/tools/findleaves.py --prune=$(OUT_DIR) --prune=.repo --prune=.git . CleanSpec.mk) + $(shell build/tools/findleaves.py $(FIND_LEAVES_EXCLUDES) . CleanSpec.mk) include $(subdir_cleanspecs) subdir_cleanspecs := diff --git a/core/config.mk b/core/config.mk index bfa5610ddb..e6a6812fcd 100644 --- a/core/config.mk +++ b/core/config.mk @@ -150,6 +150,10 @@ endif # are specific to the user's build configuration. include $(BUILD_SYSTEM)/envsetup.mk +# Pruned directory options used when using findleaves.py +# See envsetup.mk for a description of SCAN_EXCLUDE_DIRS +FIND_LEAVES_EXCLUDES := $(addprefix --prune=, $(OUT_DIR) $(SCAN_EXCLUDE_DIRS) .repo .git) + # The build system exposes several variables for where to find the kernel # headers: # TARGET_DEVICE_KERNEL_HEADERS is automatically created for the current diff --git a/core/definitions.mk b/core/definitions.mk index 57fc434c21..946a2a91b0 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -150,7 +150,7 @@ endef # $(1): directory to search under # Ignores $(1)/Android.mk define first-makefiles-under -$(shell build/tools/findleaves.py --prune=$(OUT_DIR) --prune=.repo --prune=.git \ +$(shell build/tools/findleaves.py $(FIND_LEAVES_EXCLUDES) \ --mindepth=2 $(1) Android.mk) endef diff --git a/core/envsetup.mk b/core/envsetup.mk index ad78be333a..ba67737ccd 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -5,6 +5,11 @@ # the bottom for the full list # OUT_DIR is also set to "out" if it's not already set. # this allows you to set it to somewhere else if you like +# SCAN_EXCLUDE_DIRS is an optional, whitespace separated list of +# directories that will also be excluded from full checkout tree +# searches for source or make files, in addition to OUT_DIR. +# This can be useful if you set OUT_DIR to be a different directory +# than other outputs of your build system. # Set up version information. include $(BUILD_SYSTEM)/version_defaults.mk diff --git a/core/main.mk b/core/main.mk index 9d6e233d4c..17099a3f8d 100644 --- a/core/main.mk +++ b/core/main.mk @@ -513,7 +513,7 @@ ifneq ($(dont_bother),true) # Can't use first-makefiles-under here because # --mindepth=2 makes the prunes not work. subdir_makefiles := \ - $(shell build/tools/findleaves.py --prune=$(OUT_DIR) --prune=.repo --prune=.git $(subdirs) Android.mk) + $(shell build/tools/findleaves.py $(FIND_LEAVES_EXCLUDES) $(subdirs) Android.mk) $(foreach mk, $(subdir_makefiles), $(info including $(mk) ...)$(eval include $(mk)))