blob: 4746e9c6a2d5c2156bb0559e25e12f69b1e35d8d [file] [log] [blame]
Agatha Man36fc50c2015-07-27 10:34:24 -07001# Copyright (C) 2015 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#
16# Builds a package which can be instrumented to retrieve information about the device under test.
17#
18
19DEVICE_INFO_PACKAGE := com.android.compatibility.common.deviceinfo
Agatha Man71ba78d2015-10-05 20:14:31 -070020DEVICE_INFO_INSTRUMENT := android.support.test.runner.AndroidJUnitRunner
Agatha Man62a97bf2015-07-14 13:47:47 -070021DEVICE_INFO_PERMISSIONS += android.permission.WRITE_EXTERNAL_STORAGE
Nicholas Sauerc7d0ede2015-12-08 11:56:30 -080022DEVICE_INFO_ACTIVITIES += \
Nicholas Sauerc7d0ede2015-12-08 11:56:30 -080023 $(DEVICE_INFO_PACKAGE).ConfigurationDeviceInfo \
24 $(DEVICE_INFO_PACKAGE).CpuDeviceInfo \
25 $(DEVICE_INFO_PACKAGE).FeatureDeviceInfo \
26 $(DEVICE_INFO_PACKAGE).GenericDeviceInfo \
Agatha Man7941c812016-01-07 10:22:17 -080027 $(DEVICE_INFO_PACKAGE).GlesStubActivity \
Nicholas Sauerc7d0ede2015-12-08 11:56:30 -080028 $(DEVICE_INFO_PACKAGE).GraphicsDeviceInfo \
29 $(DEVICE_INFO_PACKAGE).LibraryDeviceInfo \
30 $(DEVICE_INFO_PACKAGE).LocaleDeviceInfo \
31 $(DEVICE_INFO_PACKAGE).MediaDeviceInfo \
32 $(DEVICE_INFO_PACKAGE).MemoryDeviceInfo \
33 $(DEVICE_INFO_PACKAGE).PackageDeviceInfo \
34 $(DEVICE_INFO_PACKAGE).PropertyDeviceInfo \
35 $(DEVICE_INFO_PACKAGE).ScreenDeviceInfo \
36 $(DEVICE_INFO_PACKAGE).StorageDeviceInfo \
37 $(DEVICE_INFO_PACKAGE).UserDeviceInfo
Agatha Man36fc50c2015-07-27 10:34:24 -070038
Agatha Manf2ea3fb2015-10-21 19:30:36 -070039ifeq ($(DEVICE_INFO_MIN_SDK),)
40DEVICE_INFO_MIN_SDK := 8
41endif
42
43ifeq ($(DEVICE_INFO_TARGET_SDK),)
44DEVICE_INFO_TARGET_SDK := 8
45endif
46
Agatha Man36fc50c2015-07-27 10:34:24 -070047# Add the base device info
Stuart Scott252d3752016-02-02 13:09:47 -080048LOCAL_STATIC_JAVA_LIBRARIES += compatibility-device-info compatibility-device-util
Agatha Man36fc50c2015-07-27 10:34:24 -070049
Agatha Man36fc50c2015-07-27 10:34:24 -070050# Generator of APK manifests.
51MANIFEST_GENERATOR_JAR := $(HOST_OUT_JAVA_LIBRARIES)/compatibility-manifest-generator.jar
Colin Cross95fa0512017-06-30 14:19:12 -070052MANIFEST_GENERATOR := $(JAVA) -jar $(MANIFEST_GENERATOR_JAR)
Agatha Man36fc50c2015-07-27 10:34:24 -070053
54# Generate the manifest
55manifest_xml := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME))/AndroidManifest.xml
56$(manifest_xml): PRIVATE_INFO_PERMISSIONS := $(foreach permission, $(DEVICE_INFO_PERMISSIONS),-r $(permission))
57$(manifest_xml): PRIVATE_INFO_ACTIVITIES := $(foreach activity,$(DEVICE_INFO_ACTIVITIES),-a $(activity))
58$(manifest_xml): PRIVATE_PACKAGE := $(DEVICE_INFO_PACKAGE)
59$(manifest_xml): PRIVATE_INSTRUMENT := $(DEVICE_INFO_INSTRUMENT)
Agatha Manf2ea3fb2015-10-21 19:30:36 -070060$(manifest_xml): PRIVATE_MIN_SDK := $(DEVICE_INFO_MIN_SDK)
61$(manifest_xml): PRIVATE_TARGET_SDK := $(DEVICE_INFO_TARGET_SDK)
Agatha Man62a97bf2015-07-14 13:47:47 -070062
63# Regenerate manifest.xml if the generator jar, */cts-device-info/Android.mk, or this file is changed.
64$(manifest_xml): $(MANIFEST_GENERATOR_JAR) $(LOCAL_PATH)/Android.mk cts/build/device_info_package.mk
Agatha Man36fc50c2015-07-27 10:34:24 -070065 $(hide) echo Generating manifest for $(PRIVATE_NAME)
66 $(hide) mkdir -p $(dir $@)
67 $(hide) $(MANIFEST_GENERATOR) \
68 $(PRIVATE_INFO_PERMISSIONS) \
69 $(PRIVATE_INFO_ACTIVITIES) \
70 -p $(PRIVATE_PACKAGE) \
71 -i $(PRIVATE_INSTRUMENT) \
Agatha Manf2ea3fb2015-10-21 19:30:36 -070072 -s $(PRIVATE_MIN_SDK) \
73 -t $(PRIVATE_TARGET_SDK) \
Agatha Man36fc50c2015-07-27 10:34:24 -070074 -o $@
75
76# Reset variables
Agatha Manf2ea3fb2015-10-21 19:30:36 -070077DEVICE_INFO_MIN_SDK :=
78DEVICE_INFO_TARGET_SDK :=
Agatha Man36fc50c2015-07-27 10:34:24 -070079DEVICE_INFO_PACKAGE :=
80DEVICE_INFO_INSTRUMENT :=
81DEVICE_INFO_PERMISSIONS :=
82DEVICE_INFO_ACTIVITIES :=
83
84LOCAL_FULL_MANIFEST_FILE := $(manifest_xml)
85# Disable by default
86LOCAL_DEX_PREOPT := false
87LOCAL_PROGUARD_ENABLED := disabled
88
89# Don't include this package in any target
90LOCAL_MODULE_TAGS := optional
91# And when built explicitly put it in the data partition
92LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
93
94LOCAL_SDK_VERSION := current
95
Agatha Man22851292015-06-29 16:54:32 -070096include $(BUILD_CTS_SUPPORT_PACKAGE)