1aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)#
2aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# Copyright (C) 2014 The Android Open Source Project
3aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)#
4aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# Licensed under the Apache License, Version 2.0 (the "License");
5aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# you may not use this file except in compliance with the License.
6aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# You may obtain a copy of the License at
7aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)#
8aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)#      http://www.apache.org/licenses/LICENSE-2.0
9aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)#
10aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# Unless required by applicable law or agreed to in writing, software
11aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# distributed under the License is distributed on an "AS IS" BASIS,
12aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# See the License for the specific language governing permissions and
14aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# limitations under the License.
15aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)#
16aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
17aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# This package provides the 'glue' layer between Chromium and WebView.
18aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
19aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_PATH := $(call my-dir)
20aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)CHROMIUM_PATH := external/chromium_org
21aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
22cbaa791850e8a0f9a8a1cfc9c88aaecbd580d3ecTorne (Richard Coles)ifeq (,$(wildcard $(CHROMIUM_PATH)))
23cbaa791850e8a0f9a8a1cfc9c88aaecbd580d3ecTorne (Richard Coles)# Some branches don't have the chromium sources; they shouldn't depend on
24cbaa791850e8a0f9a8a1cfc9c88aaecbd580d3ecTorne (Richard Coles)# webview, but just in case this is a mistake, warn about it.
25cbaa791850e8a0f9a8a1cfc9c88aaecbd580d3ecTorne (Richard Coles)$(warning Chromium sources missing, skipping webview package build)
26cbaa791850e8a0f9a8a1cfc9c88aaecbd580d3ecTorne (Richard Coles)else
27cbaa791850e8a0f9a8a1cfc9c88aaecbd580d3ecTorne (Richard Coles)# Chromium sources exist, build the package.
28cbaa791850e8a0f9a8a1cfc9c88aaecbd580d3ecTorne (Richard Coles)
29aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# Java glue layer JAR, calls directly into the chromium AwContents Java API.
30aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)include $(CLEAR_VARS)
31aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
32aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_PACKAGE_NAME := webview
33aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
34aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_MANIFEST_FILE := AndroidManifest.xml
35aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
36aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_MODULE_TAGS := optional
37aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
380dd72dc2dac5ee57fd597f172e5015650312a700Ignacio SollaLOCAL_SDK_VERSION := system_current
390dd72dc2dac5ee57fd597f172e5015650312a700Ignacio Solla
40aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_STATIC_JAVA_LIBRARIES += android_webview_java_with_new_resources
41aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
42aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_SRC_FILES := $(call all-java-files-under, java)
43074f227d175b9e70783dc939555ee89005642977Selim GurunLOCAL_SRC_FILES += $(extra_java_files)
44aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
45aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_JARJAR_RULES := $(CHROMIUM_PATH)/android_webview/build/jarjar-rules.txt
46aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
47aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)include $(CHROMIUM_PATH)/android_webview/build/resources_config.mk
48aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_RESOURCE_DIR := \
4961afed696a71ff0a288916a9319461cd880375e2Ben Murdoch    $(res_overrides) \
50aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)    $(LOCAL_PATH)/res \
51aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)    $(android_webview_resources_dirs)
5261afed696a71ff0a288916a9319461cd880375e2Ben Murdoch
53aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_AAPT_FLAGS := $(android_webview_aapt_flags)
54aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_AAPT_FLAGS += --extra-packages com.android.webview.chromium
55aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_AAPT_FLAGS += --shared-lib
5673e77f9db2815cf820a6753e2d532557cfc5b9a2Torne (Richard Coles)
5773e77f9db2815cf820a6753e2d532557cfc5b9a2Torne (Richard Coles)include $(LOCAL_PATH)/version.mk
5873e77f9db2815cf820a6753e2d532557cfc5b9a2Torne (Richard Coles)LOCAL_AAPT_FLAGS += --version-code "$(version_code)" --version-name "$(version_name)"
59aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
60aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_JNI_SHARED_LIBRARIES += libwebviewchromium
61aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
62aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_MULTILIB := both
63aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
64e7088bc41cfbeb3eca02b1347c61cb21e37203b4Ying Wang# See Bug 17409149.
65e7088bc41cfbeb3eca02b1347c61cb21e37203b4Ying WangLOCAL_DEX_PREOPT := false
66e7088bc41cfbeb3eca02b1347c61cb21e37203b4Ying Wang
67aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# TODO: filter webviewchromium_webkit_strings based on PRODUCT_LOCALES.
68aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_REQUIRED_MODULES := \
69aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)        libwebviewchromium \
70aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)        libwebviewchromium_loader \
71aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)        libwebviewchromium_plat_support
72aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
73aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_PROGUARD_ENABLED := full
74aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_PROGUARD_FLAG_FILES := proguard.flags
75aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
76aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_JAVACFLAGS := -Xlint:unchecked -Werror
77aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
78aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)include $(BUILD_PACKAGE)
79aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
80aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)$(LOCAL_BUILT_MODULE): $(android_webview_intermediates_pak_additional_deps)
81aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)$(LOCAL_BUILT_MODULE): PRIVATE_ASSET_DIR += $(android_webview_asset_dirs)
82aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# This is needed to force the grd->string.xml conversion to run before we
83aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# attempt to generate the R.java file.
84aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)$(R_file_stamp): $(call intermediates-dir-for,GYP,android_webview_resources)/android_webview_resources.stamp
85aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
86aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)ifneq ($(strip $(LOCAL_JARJAR_RULES)),)
87aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# Add build rules to check that the jarjar'ed jar only contains whitelisted
88aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)# packages. Only enable this when we are running jarjar.
89aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)LOCAL_JAR_CHECK_WHITELIST := $(LOCAL_PATH)/jar_package_whitelist.txt
90aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
91aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)jar_check_ok := $(intermediates.COMMON)/jar_check_ok
92aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)$(jar_check_ok): PRIVATE_JAR_CHECK := $(LOCAL_PATH)/tools/jar_check.py
93aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)$(jar_check_ok): PRIVATE_JAR_CHECK_WHITELIST := $(LOCAL_JAR_CHECK_WHITELIST)
94aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)$(jar_check_ok): $(full_classes_jarjar_jar) $(LOCAL_PATH)/tools/jar_check.py $(LOCAL_JAR_CHECK_WHITELIST)
95aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)	@echo Jar check: $@
96aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)	$(hide) $(PRIVATE_JAR_CHECK) $< $(PRIVATE_JAR_CHECK_WHITELIST)
97aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)	$(hide) touch $@
98aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)
99aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)$(LOCAL_BUILT_MODULE): $(jar_check_ok)
100aa277f94f25f0d0eefb10d4e820ee574068f6515Torne (Richard Coles)endif
101cbaa791850e8a0f9a8a1cfc9c88aaecbd580d3ecTorne (Richard Coles)
102cbaa791850e8a0f9a8a1cfc9c88aaecbd580d3ecTorne (Richard Coles)endif  # CHROMIUM_PATH existence test
103