blob: db5bc2047a84b58104bc08578ff24b69863b703f [file] [log] [blame]
Adnan Begovicaa8614e2015-04-23 23:16:27 -07001# Copyright (C) 2015 The CyanogenMod 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.
Adnan Begovicaa8614e2015-04-23 23:16:27 -070014LOCAL_PATH := $(call my-dir)
15
Adnan Begovic37fc76f2015-05-05 17:37:05 -070016# We have a special case here where we build the library's resources
17# independently from its code, so we need to find where the resource
18# class source got placed in the course of building the resources.
19# Thus, the magic here.
20# Also, this module cannot depend directly on the R.java file; if it
21# did, the PRIVATE_* vars for R.java wouldn't be guaranteed to be correct.
22# Instead, it depends on the R.stamp file, which lists the corresponding
23# R.java file as a prerequisite.
24cm_platform_res := APPS/org.cyanogenmod.platform-res_intermediates/src
25
d34df2fd8362016-03-04 16:07:39 -080026# List of packages used in cm-api-stubs and cm-system-api-stubs
Luis Vidal217758b2016-03-21 11:56:40 -070027cm_stub_packages := cyanogenmod.alarmclock:cyanogenmod.app:cyanogenmod.content:cyanogenmod.externalviews:cyanogenmod.hardware:cyanogenmod.media:cyanogenmod.os:cyanogenmod.profiles:cyanogenmod.providers:cyanogenmod.platform:cyanogenmod.power:cyanogenmod.themes:cyanogenmod.util:cyanogenmod.weather:cyanogenmod.weatherservice
d34df2fd8362016-03-04 16:07:39 -080028
Adnan Begovicaa8614e2015-04-23 23:16:27 -070029# The CyanogenMod Platform Framework Library
30# ============================================================
31include $(CLEAR_VARS)
32
Adnan Begovic8d5c2e82016-04-01 12:21:24 -070033cyanogenmod_sdk_src := sdk/src/java/cyanogenmod
34cyanogenmod_sdk_internal_src := sdk/src/java/org/cyanogenmod/internal
Adnan Begovica7d6fc52015-04-30 11:10:56 -070035library_src := cm/lib/main/java
Adnan Begovicaa8614e2015-04-23 23:16:27 -070036
37LOCAL_MODULE := org.cyanogenmod.platform
38LOCAL_MODULE_TAGS := optional
Adnan Begovic37fc76f2015-05-05 17:37:05 -070039
40LOCAL_JAVA_LIBRARIES := \
Steve Kondik5ee87cb2015-08-16 22:33:30 -070041 services \
42 org.cyanogenmod.hardware
Adnan Begovicaa8614e2015-04-23 23:16:27 -070043
44LOCAL_SRC_FILES := \
Adnan Begovic8d5c2e82016-04-01 12:21:24 -070045 $(call all-java-files-under, $(cyanogenmod_sdk_src)) \
46 $(call all-java-files-under, $(cyanogenmod_sdk_internal_src)) \
Adnan Begovic37fc76f2015-05-05 17:37:05 -070047 $(call all-java-files-under, $(library_src))
Adnan Begovicaa8614e2015-04-23 23:16:27 -070048
49## READ ME: ########################################################
50##
51## When updating this list of aidl files, consider if that aidl is
52## part of the SDK API. If it is, also add it to the list below that
53## is preprocessed and distributed with the SDK. This list should
54## not contain any aidl files for parcelables, but the one below should
55## if you intend for 3rd parties to be able to send those objects
56## across process boundaries.
57##
58## READ ME: ########################################################
59LOCAL_SRC_FILES += \
Adnan Begovic8d5c2e82016-04-01 12:21:24 -070060 $(call all-Iaidl-files-under, $(cyanogenmod_sdk_src)) \
61 $(call all-Iaidl-files-under, $(cyanogenmod_sdk_internal_src))
Adnan Begovic37fc76f2015-05-05 17:37:05 -070062
Adnan Begovic62c951e2015-05-28 16:13:04 -070063cmplat_LOCAL_INTERMEDIATE_SOURCES := \
Adnan Begovic37c4b962015-05-13 04:48:42 -070064 $(cm_platform_res)/cyanogenmod/platform/R.java \
65 $(cm_platform_res)/cyanogenmod/platform/Manifest.java \
Adnan Begovic37fc76f2015-05-05 17:37:05 -070066 $(cm_platform_res)/org/cyanogenmod/platform/internal/R.java
Adnan Begovicaa8614e2015-04-23 23:16:27 -070067
Adnan Begovic8c36c412015-05-19 13:27:17 -070068LOCAL_INTERMEDIATE_SOURCES := \
Adnan Begovic62c951e2015-05-28 16:13:04 -070069 $(cmplat_LOCAL_INTERMEDIATE_SOURCES)
Adnan Begovic8c36c412015-05-19 13:27:17 -070070
Adnan Begovicaa8614e2015-04-23 23:16:27 -070071# Include aidl files from cyanogenmod.app namespace as well as internal src aidl files
Adnan Begovic8d5c2e82016-04-01 12:21:24 -070072LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/sdk/src/java
Adnan Begovicaa8614e2015-04-23 23:16:27 -070073
74include $(BUILD_JAVA_LIBRARY)
Adnan Begovic37fc76f2015-05-05 17:37:05 -070075cm_framework_module := $(LOCAL_INSTALLED_MODULE)
76
77# Make sure that R.java and Manifest.java are built before we build
78# the source for this library.
79cm_framework_res_R_stamp := \
80 $(call intermediates-dir-for,APPS,org.cyanogenmod.platform-res,,COMMON)/src/R.stamp
81$(full_classes_compiled_jar): $(cm_framework_res_R_stamp)
Steve Kondik1a5c2492015-11-03 10:13:04 -080082$(built_dex_intermediate): $(cm_framework_res_R_stamp)
Adnan Begovic37fc76f2015-05-05 17:37:05 -070083
84$(cm_framework_module): | $(dir $(cm_framework_module))org.cyanogenmod.platform-res.apk
Adnan Begovicaa8614e2015-04-23 23:16:27 -070085
86cm_framework_built := $(call java-lib-deps, org.cyanogenmod.platform)
87
88# ==== org.cyanogenmod.platform.xml lib def ========================
89include $(CLEAR_VARS)
90
91LOCAL_MODULE := org.cyanogenmod.platform.xml
92LOCAL_MODULE_TAGS := optional
93
94LOCAL_MODULE_CLASS := ETC
95
96# This will install the file in /system/etc/permissions
97LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions
98
99LOCAL_SRC_FILES := $(LOCAL_MODULE)
100
101include $(BUILD_PREBUILT)
102
103# the sdk
104# ============================================================
105include $(CLEAR_VARS)
106
107LOCAL_MODULE:= org.cyanogenmod.platform.sdk
108LOCAL_MODULE_TAGS := optional
109LOCAL_REQUIRED_MODULES := services
110
111LOCAL_SRC_FILES := \
Adnan Begovic8d5c2e82016-04-01 12:21:24 -0700112 $(call all-java-files-under, $(cyanogenmod_sdk_src)) \
113 $(call all-Iaidl-files-under, $(cyanogenmod_sdk_src)) \
114 $(call all-Iaidl-files-under, $(cyanogenmod_sdk_internal_src))
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700115
116# Included aidl files from cyanogenmod.app namespace
Adnan Begovic8d5c2e82016-04-01 12:21:24 -0700117LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/sdk/src/java
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700118
Adnan Begovice9494332015-08-28 15:28:23 -0700119cmsdk_LOCAL_INTERMEDIATE_SOURCES := \
120 $(cm_platform_res)/cyanogenmod/platform/R.java \
121 $(cm_platform_res)/cyanogenmod/platform/Manifest.java
122
123LOCAL_INTERMEDIATE_SOURCES := \
124 $(cmsdk_LOCAL_INTERMEDIATE_SOURCES)
125
Adnan Begovic182b9722016-02-15 15:25:21 -0800126# Make sure that R.java and Manifest.java are built before we build
127# the source for this library.
128cm_framework_res_R_stamp := \
129 $(call intermediates-dir-for,APPS,org.cyanogenmod.platform-res,,COMMON)/src/R.stamp
130$(full_classes_compiled_jar): $(cm_framework_res_R_stamp)
131$(built_dex_intermediate): $(cm_framework_res_R_stamp)
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700132$(full_target): $(cm_framework_built) $(gen)
133include $(BUILD_STATIC_JAVA_LIBRARY)
134
Roman Birg2a851352016-03-22 14:21:05 -0700135# the sdk as an aar for publish, not built as part of full target
Adnan Begovicbbab82e2016-01-05 14:15:09 -0800136# DO NOT LINK AGAINST THIS IN BUILD
137# ============================================================
138include $(CLEAR_VARS)
139
Roman Birg2a851352016-03-22 14:21:05 -0700140LOCAL_MODULE := org.cyanogenmod.platform.sdk.aar
141
Adnan Begovicbbab82e2016-01-05 14:15:09 -0800142LOCAL_JACK_ENABLED := disabled
143
Roman Birg2a851352016-03-22 14:21:05 -0700144# just need to define this, $(TOP)/dummy should not exist
145LOCAL_SRC_FILES := $(call all-java-files-under, dummy)
Adnan Begovicbbab82e2016-01-05 14:15:09 -0800146
Roman Birg2a851352016-03-22 14:21:05 -0700147LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, sdk/res/res)
148LOCAL_MANIFEST_FILE := sdk/AndroidManifest.xml
Adnan Begovicbbab82e2016-01-05 14:15:09 -0800149
Roman Birg2a851352016-03-22 14:21:05 -0700150LOCAL_STATIC_JAVA_LIBRARIES := org.cyanogenmod.platform.sdk
Adnan Begovicbbab82e2016-01-05 14:15:09 -0800151
152include $(BUILD_STATIC_JAVA_LIBRARY)
Roman Birg2a851352016-03-22 14:21:05 -0700153$(LOCAL_MODULE) : $(built_aar)
Adnan Begovicbbab82e2016-01-05 14:15:09 -0800154
Steve Kondik5e522e62015-11-03 17:34:01 -0800155# full target for use by platform apps
156#
157include $(CLEAR_VARS)
158
159LOCAL_MODULE:= org.cyanogenmod.platform.internal
160LOCAL_MODULE_TAGS := optional
161LOCAL_REQUIRED_MODULES := services
162
163LOCAL_SRC_FILES := \
Adnan Begovic8d5c2e82016-04-01 12:21:24 -0700164 $(call all-java-files-under, $(cyanogenmod_sdk_src)) \
165 $(call all-java-files-under, $(cyanogenmod_sdk_internal_src)) \
166 $(call all-Iaidl-files-under, $(cyanogenmod_sdk_src)) \
167 $(call all-Iaidl-files-under, $(cyanogenmod_sdk_internal_src))
Steve Kondik5e522e62015-11-03 17:34:01 -0800168
169# Included aidl files from cyanogenmod.app namespace
Adnan Begovic8d5c2e82016-04-01 12:21:24 -0700170LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/sdk/src/java
Steve Kondik5e522e62015-11-03 17:34:01 -0800171
172cmsdk_LOCAL_INTERMEDIATE_SOURCES := \
173 $(cm_platform_res)/cyanogenmod/platform/R.java \
174 $(cm_platform_res)/cyanogenmod/platform/Manifest.java \
175 $(cm_platform_res)/org/cyanogenmod/platform/internal/R.java \
176 $(cm_platform_res)/org/cyanogenmod/platform/internal/Manifest.java
177
178LOCAL_INTERMEDIATE_SOURCES := \
179 $(cmsdk_LOCAL_INTERMEDIATE_SOURCES)
180
181$(full_target): $(cm_framework_built) $(gen)
182include $(BUILD_STATIC_JAVA_LIBRARY)
183
184
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700185# ===========================================================
186# Common Droiddoc vars
Adnan Begovic62c951e2015-05-28 16:13:04 -0700187cmplat_docs_src_files := \
Adnan Begovic8d5c2e82016-04-01 12:21:24 -0700188 $(call all-java-files-under, $(cyanogenmod_sdk_src)) \
189 $(call all-html-files-under, $(cyanogenmod_sdk_src))
Adnan Begovic62c951e2015-05-28 16:13:04 -0700190
191cmplat_docs_java_libraries := \
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700192 org.cyanogenmod.platform.sdk
193
Adnan Begovic62c951e2015-05-28 16:13:04 -0700194# SDK version as defined
Adnan Begovic7bdcaa52015-12-22 11:04:08 -0800195cmplat_docs_SDK_VERSION := 13.0
Adnan Begovic62c951e2015-05-28 16:13:04 -0700196
197# release version
Adnan Begovicc5586522016-04-01 15:39:53 -0700198cmplat_docs_SDK_REL_ID := 6
Adnan Begovic62c951e2015-05-28 16:13:04 -0700199
200cmplat_docs_LOCAL_MODULE_CLASS := JAVA_LIBRARIES
201
Adnan Begovic62c951e2015-05-28 16:13:04 -0700202cmplat_docs_LOCAL_DROIDDOC_SOURCE_PATH := \
203 $(cmplat_docs_src_files)
204
205intermediates.COMMON := $(call intermediates-dir-for,$(LOCAL_MODULE_CLASS), org.cyanogenmod.platform.sdk,,COMMON)
206
207# ==== the api stubs and current.xml ===========================
208include $(CLEAR_VARS)
209
210LOCAL_SRC_FILES:= \
Adnan Begovic7bdcaa52015-12-22 11:04:08 -0800211 $(cmplat_docs_src_files)
Adnan Begovic62c951e2015-05-28 16:13:04 -0700212LOCAL_INTERMEDIATE_SOURCES:= $(cmplat_LOCAL_INTERMEDIATE_SOURCES)
213LOCAL_JAVA_LIBRARIES:= $(cmplat_docs_java_libraries)
214LOCAL_MODULE_CLASS:= $(cmplat_docs_LOCAL_MODULE_CLASS)
215LOCAL_DROIDDOC_SOURCE_PATH:= $(cmplat_docs_LOCAL_DROIDDOC_SOURCE_PATH)
216LOCAL_ADDITIONAL_JAVA_DIR:= $(intermediates.COMMON)/src
217LOCAL_ADDITIONAL_DEPENDENCIES:= $(cmplat_docs_LOCAL_ADDITIONAL_DEPENDENCIES)
218
219LOCAL_MODULE := cm-api-stubs
220
221LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:= build/tools/droiddoc/templates-sdk
222
223LOCAL_DROIDDOC_OPTIONS:= \
224 -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/cmsdk_stubs_current_intermediates/src \
d34df2fd8362016-03-04 16:07:39 -0800225 -stubpackages $(cm_stub_packages) \
Adnan Begovic7bdcaa52015-12-22 11:04:08 -0800226 -exclude org.cyanogenmod.platform.internal \
Adnan Begovic62c951e2015-05-28 16:13:04 -0700227 -api $(INTERNAL_CM_PLATFORM_API_FILE) \
228 -removedApi $(INTERNAL_CM_PLATFORM_REMOVED_API_FILE) \
Adnan Begovicc02c64b2016-02-09 11:05:20 -0800229 -nodocs
Adnan Begovic62c951e2015-05-28 16:13:04 -0700230
231LOCAL_UNINSTALLABLE_MODULE := true
232
233include $(BUILD_DROIDDOC)
234
Adnan Begovic7bdcaa52015-12-22 11:04:08 -0800235# $(gen), i.e. framework.aidl, is also needed while building against the current stub.
Adnan Begovic62c951e2015-05-28 16:13:04 -0700236$(full_target): $(cm_framework_built) $(gen)
237$(INTERNAL_CM_PLATFORM_API_FILE): $(full_target)
Adnan Begovic7bdcaa52015-12-22 11:04:08 -0800238$(call dist-for-goals,sdk,$(INTERNAL_CM_PLATFORM_API_FILE))
Adnan Begovic62c951e2015-05-28 16:13:04 -0700239
240# ==== the system api stubs ===================================
241include $(CLEAR_VARS)
242
243LOCAL_SRC_FILES:= \
Adnan Begovic7bdcaa52015-12-22 11:04:08 -0800244 $(cmplat_docs_src_files)
Adnan Begovic62c951e2015-05-28 16:13:04 -0700245LOCAL_INTERMEDIATE_SOURCES:= $(cmplat_LOCAL_INTERMEDIATE_SOURCES)
246LOCAL_JAVA_LIBRARIES:= $(cmplat_docs_java_libraries)
247LOCAL_MODULE_CLASS:= $(cmplat_docs_LOCAL_MODULE_CLASS)
248LOCAL_DROIDDOC_SOURCE_PATH:= $(cmplat_docs_LOCAL_DROIDDOC_SOURCE_PATH)
249LOCAL_ADDITIONAL_JAVA_DIR:= $(intermediates.COMMON)/src
Adnan Begovic62c951e2015-05-28 16:13:04 -0700250
251LOCAL_MODULE := cm-system-api-stubs
252
253LOCAL_DROIDDOC_OPTIONS:=\
254 -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/cmsdk_system_stubs_current_intermediates/src \
d34df2fd8362016-03-04 16:07:39 -0800255 -stubpackages $(cm_stub_packages) \
Adnan Begovic62c951e2015-05-28 16:13:04 -0700256 -showAnnotation android.annotation.SystemApi \
Adnan Begovic7bdcaa52015-12-22 11:04:08 -0800257 -exclude org.cyanogenmod.platform.internal \
Adnan Begovic62c951e2015-05-28 16:13:04 -0700258 -api $(INTERNAL_CM_PLATFORM_SYSTEM_API_FILE) \
259 -removedApi $(INTERNAL_CM_PLATFORM_SYSTEM_REMOVED_API_FILE) \
Adnan Begovicc02c64b2016-02-09 11:05:20 -0800260 -nodocs
Adnan Begovic62c951e2015-05-28 16:13:04 -0700261
262LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:= build/tools/droiddoc/templates-sdk
263
264LOCAL_UNINSTALLABLE_MODULE := true
265
266include $(BUILD_DROIDDOC)
267
Adnan Begovic7bdcaa52015-12-22 11:04:08 -0800268# $(gen), i.e. framework.aidl, is also needed while building against the current stub.
Adnan Begovic62c951e2015-05-28 16:13:04 -0700269$(full_target): $(cm_framework_built) $(gen)
Adnan Begovic67890522016-04-01 11:08:24 -0700270$(INTERNAL_CM_PLATFORM_API_FILE): $(full_target)
271$(call dist-for-goals,sdk,$(INTERNAL_CM_PLATFORM_API_FILE))
Adnan Begovic62c951e2015-05-28 16:13:04 -0700272
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700273# Documentation
274# ===========================================================
275include $(CLEAR_VARS)
276
277LOCAL_MODULE := org.cyanogenmod.platform.sdk
Adnan Begovic62c951e2015-05-28 16:13:04 -0700278LOCAL_INTERMEDIATE_SOURCES:= $(cmplat_LOCAL_INTERMEDIATE_SOURCES)
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700279LOCAL_MODULE_CLASS := JAVA_LIBRARIES
280LOCAL_MODULE_TAGS := optional
281
Adnan Begovic62c951e2015-05-28 16:13:04 -0700282LOCAL_SRC_FILES := $(cmplat_docs_src_files)
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700283LOCAL_ADDITONAL_JAVA_DIR := $(intermediates.COMMON)/src
284
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700285LOCAL_IS_HOST_MODULE := false
BitO BSessiOn93fd4952016-04-11 10:27:26 +0200286LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR := vendor/cmsdk/build/tools/droiddoc/templates-cmsdk
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700287LOCAL_ADDITIONAL_DEPENDENCIES := \
Adnan Begovic7bdcaa52015-12-22 11:04:08 -0800288 services \
289 org.cyanogenmod.hardware
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700290
Adnan Begovic62c951e2015-05-28 16:13:04 -0700291LOCAL_JAVA_LIBRARIES := $(cmplat_docs_java_libraries)
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700292
293LOCAL_DROIDDOC_OPTIONS := \
Adnan Begovic62c951e2015-05-28 16:13:04 -0700294 -offlinemode \
Adnan Begovic7bdcaa52015-12-22 11:04:08 -0800295 -exclude org.cyanogenmod.platform.internal \
Adnan Begovicd1129cc2016-01-02 14:07:06 -0800296 -hidePackage org.cyanogenmod.platform.internal \
Adnan Begovic62c951e2015-05-28 16:13:04 -0700297 -hdf android.whichdoc offline \
298 -hdf sdk.version $(cmplat_docs_docs_SDK_VERSION) \
299 -hdf sdk.rel.id $(cmplat_docs_docs_SDK_REL_ID) \
300 -hdf sdk.preview 0 \
Adnan Begovice3ad3912015-07-13 14:52:14 -0700301 -since $(CM_SRC_API_DIR)/1.txt 1 \
Adnan Begovic38e8b112015-09-29 11:40:29 -0700302 -since $(CM_SRC_API_DIR)/2.txt 2 \
Adnan Begovic4e534612015-10-07 11:32:41 -0700303 -since $(CM_SRC_API_DIR)/3.txt 3 \
Adnan Begovic24f2bb42016-01-18 11:26:42 -0800304 -since $(CM_SRC_API_DIR)/4.txt 4 \
Adnan Begovicc5586522016-04-01 15:39:53 -0700305 -since $(CM_SRC_API_DIR)/5.txt 5 \
306 -since $(CM_SRC_API_DIR)/6.txt 6
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700307
308$(full_target): $(cm_framework_built) $(gen)
309include $(BUILD_DROIDDOC)
310
Adnan Begovic37fc76f2015-05-05 17:37:05 -0700311include $(call first-makefiles-under,$(LOCAL_PATH))
312
Adnan Begovicaa8614e2015-04-23 23:16:27 -0700313# Cleanup temp vars
314# ===========================================================
315cmplat.docs.src_files :=
316cmplat.docs.java_libraries :=
317intermediates.COMMON :=