Home | History | Annotate | Download | only in support
      1 # Copyright (C) 2014 The Android Open Source Project
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License");
      4 # you may not use this file except in compliance with the License.
      5 # You may obtain a copy of the License at
      6 #
      7 #      http://www.apache.org/licenses/LICENSE-2.0
      8 #
      9 # Unless required by applicable law or agreed to in writing, software
     10 # distributed under the License is distributed on an "AS IS" BASIS,
     11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 # See the License for the specific language governing permissions and
     13 # limitations under the License.
     14 
     15 LOCAL_PATH:= $(call my-dir)
     16 # Don't include in unbundled build.
     17 ifeq ($(TARGET_BUILD_APPS),)
     18 
     19 SUPPORT_CURRENT_SDK_VERSION := current
     20 
     21 ###########################################################
     22 # Find all of the files in the given subdirs that match the
     23 # specified pattern but do not match another pattern. This
     24 # function uses $(1) instead of LOCAL_PATH as the base.
     25 # $(1): the base dir, relative to the root of the source tree.
     26 # $(2): the file name pattern to match.
     27 # $(3): the file name pattern to exclude.
     28 # $(4): a list of subdirs of the base dir.
     29 # Returns: a list of paths relative to the base dir.
     30 ###########################################################
     31 
     32 define find-files-in-subdirs-exclude
     33 $(sort $(patsubst ./%,%, \
     34   $(shell cd $(1) ; \
     35           find -L $(4) -name $(2) -and -not -name $(3) -and -not -name ".*") \
     36  ))
     37 endef
     38 
     39 ###########################################################
     40 ## Find all of the files under the named directories where
     41 ## the file name matches the specified pattern but does not
     42 ## match another pattern. Meant to be used like:
     43 ##    SRC_FILES := $(call all-named-files-under,.*\.h,src tests)
     44 ###########################################################
     45 
     46 define all-named-files-under-exclude
     47 $(call find-files-in-subdirs-exclude,$(LOCAL_PATH),"$(1)","$(2)",$(3))
     48 endef
     49 
     50 ###########################################################
     51 ## Find all of the files under the current directory where
     52 ## the file name matches the specified pattern but does not
     53 ## match another pattern.
     54 ###########################################################
     55 
     56 define all-subdir-named-files-exclude
     57 $(call all-named-files-under-exclude,$(1),$(2),.)
     58 endef
     59 
     60 # Pre-process support library AIDLs
     61 aidl_files := $(addprefix $(LOCAL_PATH)/, $(call all-subdir-named-files-exclude,*.aidl,I*.aidl))
     62 support-aidl := $(TARGET_OUT_COMMON_INTERMEDIATES)/support.aidl
     63 $(support-aidl): $(aidl_files) | $(AIDL)
     64 	$(AIDL) --preprocess $@ $(aidl_files)
     65 
     66 # Build all support libraries
     67 include $(call all-makefiles-under,$(LOCAL_PATH))
     68 
     69 # Clear out variables
     70 SUPPORT_CURRENT_SDK_VERSION :=
     71 
     72 endif
     73