Add build targets for the new prebuilts.
The jar files referenced here have been added in other commits linked
to b/77525052. A follow-up change will change the build system to use
these new modules.
Bug: b/77525052
Test: make
Change-Id: I549682737f40cf57a57796caaf607a0496c5fef2
diff --git a/Android.mk b/Android.mk
index 4a8c42c..4bcbe56 100644
--- a/Android.mk
+++ b/Android.mk
@@ -14,38 +14,54 @@
# limitations under the License.
#
-LOCAL_PATH:= $(call my-dir)
+LOCAL_PATH := $(call my-dir)
-# $(1): sdk version
-define declare_sdk_prebuilts
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := sdk_v$(1)
-LOCAL_SRC_FILES := $(1)/android.jar
+# Declares a single sdk module. These targets are referenced by the core build system.
+# $(1): module name
+# $(2): sdk version
+# $(3): stub file path
+define declare-sdk-prebuilt
+include $$(CLEAR_VARS)
+LOCAL_MODULE := $(1)
+LOCAL_PREBUILT_MODULE_FILE := $(3)
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-LOCAL_MODULE_SUFFIX := $(COMMON_JAVA_PACKAGE_SUFFIX)
-LOCAL_BUILT_MODULE_STEM := sdk_v$(1)$(COMMON_JAVA_PACKAGE_SUFFIX)
-LOCAL_MIN_SDK_VERSION := $(if $(call math_is_number,$(strip $(1))),$(1),$(PLATFORM_JACK_MIN_SDK_VERSION))
+LOCAL_MODULE_SUFFIX := $$(COMMON_JAVA_PACKAGE_SUFFIX)
+LOCAL_BUILT_MODULE_STEM := $(1)$$(COMMON_JAVA_PACKAGE_SUFFIX)
+LOCAL_MIN_SDK_VERSION := $(if $(call math_is_number,$(strip $(2))),$(2),$$(PLATFORM_JACK_MIN_SDK_VERSION))
LOCAL_UNINSTALLABLE_MODULE := true
+# TODO(hansson): change to $(2) after migration is done.
LOCAL_SDK_VERSION := current
-include $(BUILD_PREBUILT)
-
-ifneq (,$(wildcard $(LOCAL_PATH)/$(1)/uiautomator.jar))
-include $(CLEAR_VARS)
-LOCAL_MODULE := uiautomator_sdk_v$(1)
-LOCAL_SRC_FILES := $(1)/uiautomator.jar
-LOCAL_MODULE_CLASS := JAVA_LIBRARIES
-LOCAL_MODULE_SUFFIX := $(COMMON_JAVA_PACKAGE_SUFFIX)
-LOCAL_BUILT_MODULE_STEM := uiautomator_sdk_v$(1)$(COMMON_JAVA_PACKAGE_SUFFIX)
-LOCAL_MIN_SDK_VERSION := $(if $(call math_is_number,$(strip $(1))),$(1),$(PLATFORM_JACK_MIN_SDK_VERSION))
-LOCAL_UNINSTALLABLE_MODULE := true
-LOCAL_SDK_VERSION := $(1)
-include $(BUILD_PREBUILT)
-endif
-
+include $$(BUILD_PREBUILT)
endef
-$(foreach s,$(filter-out test_current core_current,$(TARGET_AVAILABLE_SDK_VERSIONS)),\
- $(eval $(call declare_sdk_prebuilts,$(s))))
+# Format: sdk_<api>_<sdk_version>_<stub_name>
+# e.g. sdk_system_28_android or sdk_public_current_java.obex
+# $(1): api (e.g. public, system)
+# $(2): sdk version (e.g. 23, current)
+# $(3): jar path
+define get-sdk-prebuilt-name
+sdk_$(1)_$(2)_$(notdir $(basename $(3)))
+endef
+
+legacy_versions := $(patsubst $(LOCAL_PATH)/%/android.jar,%,$(wildcard $(LOCAL_PATH)/*/android.jar))
+
+$(foreach version,$(legacy_versions),\
+ $(eval \
+ $(call declare-sdk-prebuilt,sdk_v$(version),$(version),$(LOCAL_PATH)/$(version)/android.jar)))
+
+$(foreach version,$(legacy_versions),\
+ $(if $(wildcard $(LOCAL_PATH)/$(version)/uiautomator.jar),\
+ $(eval $(call declare-sdk-prebuilt,uiautomator_sdk_v$(version),$(version),$(LOCAL_PATH)/$(version)/uiautomator.jar)),\
+ ))
+
+# New structure definition loop.
+$(foreach version,$(patsubst $(LOCAL_PATH)/%/public/android.jar,%,$(wildcard $(LOCAL_PATH)/*/public/android.jar)),\
+ $(foreach api_level,core public system,\
+ $(foreach jar_file, $(wildcard $(LOCAL_PATH)/$(version)/$(api_level)/*.jar),\
+ $(eval \
+ $(call declare-sdk-prebuilt,\
+ $(call get-sdk-prebuilt-name,$(api_level),$(version),$(jar_file)),\
+ $(api_level),\
+ $(jar_file))))))
include $(call all-makefiles-under,$(LOCAL_PATH))