diff --git a/core/cleanspec.mk b/core/cleanspec.mk index 500ce54f6..4441e2ac3 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 83295d9be..e32f90181 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 b6e5277f4..d90376e2b 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 ee04557e5..bf044553b 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 41e280185..e9a5306b2 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)))