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
diff --git a/core/cleanspec.mk b/core/cleanspec.mk
index 500ce54..4441e2a 100644
--- a/core/cleanspec.mk
+++ b/core/cleanspec.mk
@@ -64,6 +64,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 bfa5610..e6a6812 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -150,6 +150,10 @@
# 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 57fc434..946a2a9 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -150,7 +150,7 @@
# $(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 ad78be3..ba67737 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 9d6e233..17099a3 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -513,7 +513,7 @@
# 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)))