1#
2# Copyright (C) 2012 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17# This package provides the 'glue' layer between Chromium and WebView.
18
19LOCAL_PATH := $(call my-dir)
20CHROMIUM_PATH := external/chromium_org
21
22# Java glue layer JAR, calls directly into the chromium AwContents Java API.
23include $(CLEAR_VARS)
24
25LOCAL_MODULE := webviewchromium
26
27LOCAL_MODULE_TAGS := optional
28
29LOCAL_STATIC_JAVA_LIBRARIES += android_webview_java
30
31LOCAL_SRC_FILES := $(call all-java-files-under, java)
32
33LOCAL_JARJAR_RULES := $(CHROMIUM_PATH)/android_webview/build/jarjar-rules.txt
34
35# TODO: filter webviewchromium_webkit_strings based on PRODUCT_LOCALES.
36LOCAL_REQUIRED_MODULES := \
37        libwebviewchromium \
38        libwebviewchromium_plat_support \
39        webviewchromium_pak \
40        webviewchromium_webkit_strings_am.pak \
41        webviewchromium_webkit_strings_ar.pak \
42        webviewchromium_webkit_strings_bg.pak \
43        webviewchromium_webkit_strings_bn.pak \
44        webviewchromium_webkit_strings_ca.pak \
45        webviewchromium_webkit_strings_cs.pak \
46        webviewchromium_webkit_strings_da.pak \
47        webviewchromium_webkit_strings_de.pak \
48        webviewchromium_webkit_strings_el.pak \
49        webviewchromium_webkit_strings_en-GB.pak \
50        webviewchromium_webkit_strings_en-US.pak \
51        webviewchromium_webkit_strings_es-419.pak \
52        webviewchromium_webkit_strings_es.pak \
53        webviewchromium_webkit_strings_et.pak \
54        webviewchromium_webkit_strings_fa.pak \
55        webviewchromium_webkit_strings_fil.pak \
56        webviewchromium_webkit_strings_fi.pak \
57        webviewchromium_webkit_strings_fr.pak \
58        webviewchromium_webkit_strings_gu.pak \
59        webviewchromium_webkit_strings_he.pak \
60        webviewchromium_webkit_strings_hi.pak \
61        webviewchromium_webkit_strings_hr.pak \
62        webviewchromium_webkit_strings_hu.pak \
63        webviewchromium_webkit_strings_id.pak \
64        webviewchromium_webkit_strings_it.pak \
65        webviewchromium_webkit_strings_ja.pak \
66        webviewchromium_webkit_strings_kn.pak \
67        webviewchromium_webkit_strings_ko.pak \
68        webviewchromium_webkit_strings_lt.pak \
69        webviewchromium_webkit_strings_lv.pak \
70        webviewchromium_webkit_strings_ml.pak \
71        webviewchromium_webkit_strings_mr.pak \
72        webviewchromium_webkit_strings_ms.pak \
73        webviewchromium_webkit_strings_nb.pak \
74        webviewchromium_webkit_strings_nl.pak \
75        webviewchromium_webkit_strings_pl.pak \
76        webviewchromium_webkit_strings_pt-BR.pak \
77        webviewchromium_webkit_strings_pt-PT.pak \
78        webviewchromium_webkit_strings_ro.pak \
79        webviewchromium_webkit_strings_ru.pak \
80        webviewchromium_webkit_strings_sk.pak \
81        webviewchromium_webkit_strings_sl.pak \
82        webviewchromium_webkit_strings_sr.pak \
83        webviewchromium_webkit_strings_sv.pak \
84        webviewchromium_webkit_strings_sw.pak \
85        webviewchromium_webkit_strings_ta.pak \
86        webviewchromium_webkit_strings_te.pak \
87        webviewchromium_webkit_strings_th.pak \
88        webviewchromium_webkit_strings_tr.pak \
89        webviewchromium_webkit_strings_uk.pak \
90        webviewchromium_webkit_strings_vi.pak \
91        webviewchromium_webkit_strings_zh-CN.pak \
92        webviewchromium_webkit_strings_zh-TW.pak
93
94LOCAL_PROGUARD_ENABLED := full
95LOCAL_PROGUARD_FLAG_FILES := proguard.flags
96
97LOCAL_JAVACFLAGS := -Xlint:unchecked -Werror
98
99include $(BUILD_JAVA_LIBRARY)
100
101ifneq ($(strip $(LOCAL_JARJAR_RULES)),)
102# Add build rules to check that the jarjar'ed jar only contains whitelisted
103# packages. Only enable this when we are running jarjar.
104LOCAL_JAR_CHECK_WHITELIST := $(LOCAL_PATH)/jar_package_whitelist.txt
105
106jar_check_ok := $(intermediates.COMMON)/jar_check_ok
107$(jar_check_ok): PRIVATE_JAR_CHECK := $(LOCAL_PATH)/tools/jar_check.py
108$(jar_check_ok): PRIVATE_JAR_CHECK_WHITELIST := $(LOCAL_JAR_CHECK_WHITELIST)
109$(jar_check_ok): $(full_classes_jarjar_jar) $(LOCAL_PATH)/tools/jar_check.py $(LOCAL_JAR_CHECK_WHITELIST)
110	@echo Jar check: $@
111	$(hide) $(PRIVATE_JAR_CHECK) $< $(PRIVATE_JAR_CHECK_WHITELIST)
112	$(hide) touch $@
113
114$(LOCAL_BUILT_MODULE): $(jar_check_ok)
115endif
116
117
118
119# Native support library (libwebviewchromium_plat_support.so) - does NOT link
120# any native chromium code.
121include $(CLEAR_VARS)
122
123LOCAL_MODULE:= libwebviewchromium_plat_support
124
125LOCAL_SRC_FILES:=       \
126        plat_support/draw_gl_functor.cpp \
127        plat_support/jni_entry_point.cpp \
128        plat_support/graphics_utils.cpp \
129        plat_support/graphic_buffer_impl.cpp \
130
131LOCAL_C_INCLUDES:= \
132        $(CHROMIUM_PATH) \
133        external/skia/include/core \
134        frameworks/base/core/jni/android/graphics \
135        frameworks/native/include/ui \
136
137LOCAL_SHARED_LIBRARIES += \
138        libandroid_runtime \
139        liblog \
140        libcutils \
141        libskia \
142        libui \
143        libutils \
144
145LOCAL_MODULE_TAGS := optional
146
147# To remove warnings from skia header files
148LOCAL_CFLAGS := -Wno-unused-parameter
149
150include $(BUILD_SHARED_LIBRARY)
151include $(call first-makefiles-under,$(LOCAL_PATH))
152