From 28437aac999eb04d1698d9a6de87a25b5b772da6 Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Thu, 19 Jul 2012 14:38:43 -0700 Subject: [PATCH] Add LOCAL_SOURCE_FILES_ALL_GENERATED support Set "LOCAL_SOURCE_FILES_ALL_GENERATED := true" if you want to build a Java library from only generated source files, without any static source files. Previously this is not allowed. This is needed by building api stub libraries, which have only source files of generated stub files. Bug: 6814443 Change-Id: Idb2ae9c71a473b796154a03ef07a3403461c4f3c --- core/clear_vars.mk | 1 + core/java.mk | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 5209a04d86..0720efaecb 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -123,6 +123,7 @@ LOCAL_CTS_TEST_RUNNER:= LOCAL_CLANG:= LOCAL_ADDRESS_SANITIZER:= LOCAL_JAR_EXCLUDE_FILES:= +LOCAL_SOURCE_FILES_ALL_GENERATED:= # '',true # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to # iterate over thousands of entries every time. diff --git a/core/java.mk b/core/java.mk index 4e33ef2a80..9a4f3a247f 100644 --- a/core/java.mk +++ b/core/java.mk @@ -15,8 +15,11 @@ endif #PDK # Make sure there's something to build. # It's possible to build a package that doesn't contain any classes. -ifeq (,$(strip $(LOCAL_SRC_FILES)$(all_res_assets)$(LOCAL_STATIC_JAVA_LIBRARIES))) -$(error $(LOCAL_PATH): Target java module does not define any source or resource files) +# LOCAL_SOURCE_FILES_ALL_GENERATED is set only if the module does not have static source files, +# but generated source files in its LOCAL_INTERMEDIATE_SOURCE_DIR. +# You have to set up the dependency in some other way. +ifeq (,$(strip $(LOCAL_SRC_FILES)$(all_res_assets)$(LOCAL_STATIC_JAVA_LIBRARIES))$(filter true,$(LOCAL_SOURCE_FILES_ALL_GENERATED))) +$(warning $(LOCAL_PATH): Target java module does not define any source or resource files) endif LOCAL_NO_STANDARD_LIBRARIES:=$(strip $(LOCAL_NO_STANDARD_LIBRARIES)) @@ -232,7 +235,7 @@ $(cleantarget): PRIVATE_CLEAN_FILES += $(intermediates.COMMON) # If the module includes java code (i.e., it's not framework-res), compile it. full_classes_jar := built_dex := -ifneq (,$(strip $(all_java_sources)$(full_static_java_libs))) +ifneq (,$(strip $(all_java_sources)$(full_static_java_libs))$(filter true,$(LOCAL_SOURCE_FILES_ALL_GENERATED))) # If LOCAL_BUILT_MODULE_STEM wasn't overridden by our caller, # full_classes_jar will be the same module as LOCAL_BUILT_MODULE.