OSDN Git Service

Add all-named-(dirs|files)-under and related
authorDan Willemsen <dwillemsen@google.com>
Mon, 12 Oct 2015 22:26:52 +0000 (15:26 -0700)
committerDan Willemsen <dwillemsen@google.com>
Mon, 12 Oct 2015 22:32:28 +0000 (15:32 -0700)
To consolidate the number of places that we're using 'find' in the tree,
add some more helpers:

  all-named-dirs-under
  all-subdir-named-dirs
  all-named-files-under
  all-subdir-named-files

This change also makes many of the current helpers use these helpers
instead of using their own implementation.

The 'dirs' helpers are using '-type d' so that they only output
directories. It's probably safe to use '-type f' for the files helpers,
but that increased the kati load time by ~20%.

Bug: 24204119
Change-Id: I3312e2fe8c146f10955e1d986ad15d9c8be494e1

core/definitions.mk

index 9d6311e..5e45e1f 100644 (file)
@@ -182,16 +182,53 @@ $(sort $(wildcard $(addsuffix /Android.mk, $(addprefix $(call my-dir)/,$(1)))))
 endef
 
 ###########################################################
+## Find all of the directories under the named directories with
+## the specified name.
+## Meant to be used like:
+##    INC_DIRS := $(call all-named-dirs-under,inc,.)
+###########################################################
+
+define all-named-dirs-under
+$(call find-subdir-files,$(2) -type d -name "$(1)")
+endef
+
+###########################################################
+## Find all the directories under the current directory that
+## haves name that match $(1)
+###########################################################
+
+define all-subdir-named-dirs
+$(call all-named-dirs-under,$(1),.)
+endef
+
+###########################################################
+## Find all of the files under the named directories with
+## the specified name.
+## Meant to be used like:
+##    SRC_FILES := $(call all-named-files-under,*.h,src tests)
+###########################################################
+
+define all-named-files-under
+$(call find-files-in-subdirs,$(LOCAL_PATH),"$(1)",$(2))
+endef
+
+###########################################################
+## Find all of the files under the current directory with
+## the specified name.
+###########################################################
+
+define all-subdir-named-files
+$(call all-named-files-under,$(1),.)
+endef
+
+###########################################################
 ## Find all of the java files under the named directories.
 ## Meant to be used like:
 ##    SRC_FILES := $(call all-java-files-under,src tests)
 ###########################################################
 
 define all-java-files-under
-$(sort $(patsubst ./%,%, \
-  $(shell cd $(LOCAL_PATH) ; \
-          find -L $(1) -name "*.java" -and -not -name ".*") \
- ))
+$(call all-named-files-under,*.java,$(1))
 endef
 
 ###########################################################
@@ -210,10 +247,7 @@ endef
 ###########################################################
 
 define all-c-files-under
-$(sort $(patsubst ./%,%, \
-  $(shell cd $(LOCAL_PATH) ; \
-          find -L $(1) -name "*.c" -and -not -name ".*") \
- ))
+$(call all-named-files-under,*.c,$(1))
 endef
 
 ###########################################################
@@ -255,10 +289,7 @@ endef
 ###########################################################
 
 define all-Iaidl-files-under
-$(sort $(patsubst ./%,%, \
-  $(shell cd $(LOCAL_PATH) ; \
-          find -L $(1) -name "I*.aidl" -and -not -name ".*") \
- ))
+$(call all-named-files-under,I*.aidl,$(1))
 endef
 
 ###########################################################
@@ -276,10 +307,7 @@ endef
 ###########################################################
 
 define all-logtags-files-under
-$(sort $(patsubst ./%,%, \
-  $(shell cd $(LOCAL_PATH) ; \
-          find -L $(1) -name "*.logtags" -and -not -name ".*") \
-  ))
+$(call all-named-files-under,*.logtags,$(1))
 endef
 
 ###########################################################
@@ -289,10 +317,7 @@ endef
 ###########################################################
 
 define all-proto-files-under
-$(sort $(patsubst ./%,%, \
-  $(shell cd $(LOCAL_PATH) ; \
-          find -L $(1) -name "*.proto" -and -not -name ".*") \
-  ))
+$(call all-named-files-under,*.proto,$(1))
 endef
 
 ###########################################################
@@ -302,10 +327,7 @@ endef
 ###########################################################
 
 define all-renderscript-files-under
-$(sort $(patsubst ./%,%, \
-  $(shell cd $(LOCAL_PATH) ; \
-          find -L $(1) \( -name "*.rs" -or -name "*.fs" \) -and -not -name ".*") \
-  ))
+$(call find-subdir-files,$(1) \( -name "*.rs" -or -name "*.fs" \) -and -not -name ".*")
 endef
 
 ###########################################################
@@ -315,10 +337,7 @@ endef
 ###########################################################
 
 define all-S-files-under
-$(sort $(patsubst ./%,%, \
-  $(shell cd $(LOCAL_PATH) ; \
-          find -L $(1) -name "*.S" -and -not -name ".*") \
- ))
+$(call all-named-files-under,*.S,$(1))
 endef
 
 ###########################################################
@@ -328,10 +347,7 @@ endef
 ###########################################################
 
 define all-html-files-under
-$(sort $(patsubst ./%,%, \
-  $(shell cd $(LOCAL_PATH) ; \
-          find -L $(1) -name "*.html" -and -not -name ".*") \
- ))
+$(call all-named-files-under,*.html,$(1))
 endef
 
 ###########################################################
@@ -382,11 +398,11 @@ endef
 ###########################################################
 
 define find-other-java-files
-       $(call find-subdir-files,$(1) -name "*.java" -and -not -name ".*")
+$(call all-java-files-under,$(1))
 endef
 
 define find-other-html-files
-       $(call find-subdir-files,$(1) -name "*.html" -and -not -name ".*")
+$(call all-html-files-under,$(1))
 endef
 
 ###########################################################