2ba0d7e1ee650a7da6cccaeabc6ba880438b7cc5
[platform/framework/web/crosswalk.git] / src / xwalk / xwalk_android.gypi
1 {
2   'targets': [
3     {
4       'target_name': 'libxwalkcore',
5       'type': 'shared_library',
6       'android_unmangled_name': 1,
7       'dependencies': [
8         '../components/components.gyp:auto_login_parser',
9         '../components/components.gyp:navigation_interception',
10         '../components/components.gyp:visitedlink_browser',
11         '../components/components.gyp:visitedlink_renderer',
12         '../components/components.gyp:web_contents_delegate_android',
13         '../skia/skia.gyp:skia',
14         'xwalk_core_extensions_native_jni',
15         'xwalk_core_jar_jni',
16         'xwalk_core_native_jni',
17         'xwalk_pak',
18         'xwalk_runtime',
19       ],
20       'include_dirs': [
21         '..',
22       ],
23       'ldflags': [
24         '-Wl,--no-fatal-warnings',
25       ],
26       'sources': [
27         'runtime/app/android/xwalk_entry_point.cc',
28         'runtime/app/android/xwalk_jni_registrar.cc',
29         'runtime/app/android/xwalk_jni_registrar.h',
30       ],
31     },
32     {
33       'target_name': 'xwalk_core_java',
34       'type': 'none',
35       'dependencies': [
36         '../components/components.gyp:navigation_interception_java',
37         '../components/components.gyp:web_contents_delegate_android_java',
38         '../content/content.gyp:content_java',
39         '../ui/android/ui_android.gyp:ui_java',
40         'xwalk_core_extensions_java',
41       ],
42       'variables': {
43         'java_in_dir': 'runtime/android/core',
44         'has_java_resources': 1,
45         'R_package': 'org.xwalk.core',
46         'R_package_relpath': 'org/xwalk/core',
47         'java_strings_grd': 'android_xwalk_strings.grd',
48       },
49       'includes': ['../build/java.gypi'],
50     },
51     {
52       'target_name': 'xwalk_runtime_java',
53       'type': 'none',
54       'dependencies': [
55         'xwalk_core_java',
56       ],
57       'variables': {
58         'java_in_dir': 'runtime/android/runtime',
59         'has_java_resources': 0,
60       },
61       'includes': ['../build/java.gypi'],
62     },
63     {
64       # Use the NativeLibraries.class generated by runtime lib.
65       # It's generated as a '.jar' file used by xwalk_runtime_embedded.
66       'target_name': 'xwalk_native_libraries_java',
67       'type': 'none',
68       'dependencies': [
69         'xwalk_runtime_lib_apk',
70       ],
71       'variables': {
72         'output_dir': '<(SHARED_INTERMEDIATE_DIR)/xwalk_native_libraries',
73         'jar_excluded_classes': [
74           '*/R.class',
75           '*/R##*.class',
76           '*org/xwalk/*',
77         ],
78       },
79       'actions': [
80         {
81           'action_name': 'jar_native_libraries',
82           'message': 'Creating native_libraries jar',
83           'inputs': [
84             '<(DEPTH)/build/android/gyp/util/build_utils.py',
85             '<(DEPTH)/build/android/gyp/util/md5_check.py',
86             '<(DEPTH)/build/android/gyp/jar.py',
87           ],
88           'outputs': [
89             '<(output_dir)/xwalk_native_libraries.jar',
90           ],
91           'action': [
92             'python', '<(DEPTH)/build/android/gyp/jar.py',
93             '--classes-dir=<(PRODUCT_DIR)/xwalk_runtime_lib_apk/classes',
94             '--jar-path=<(output_dir)/xwalk_native_libraries.jar',
95             '--excluded-classes=<(jar_excluded_classes)',
96
97             # TODO(newt): remove this once http://crbug.com/177552 is
98             # fixed in ninja.
99             '--ignore=>!(echo \'>(_inputs)\' | md5sum)',
100           ],
101         },
102       ],
103     },
104     {
105       'target_name': 'xwalk_runtime_embedded',
106       'type': 'none',
107       'dependencies': [
108         'xwalk_core_java',
109         'xwalk_native_libraries_java',
110       ],
111       'actions': [
112         {
113           'action_name': 'xwalk_runtime_embedded',
114           'variables': {
115             'dex_input_paths': [
116               '<(PRODUCT_DIR)/lib.java/base_java.dex.jar',
117               '<(PRODUCT_DIR)/lib.java/content_java.dex.jar',
118               '<(PRODUCT_DIR)/lib.java/eyesfree_java.dex.jar',
119               '<(PRODUCT_DIR)/lib.java/guava_javalib.dex.jar',
120               '<(PRODUCT_DIR)/lib.java/jsr_305_javalib.dex.jar',
121               '<(PRODUCT_DIR)/lib.java/media_java.dex.jar',
122               '<(PRODUCT_DIR)/lib.java/navigation_interception_java.dex.jar',
123               '<(PRODUCT_DIR)/lib.java/net_java.dex.jar',
124               '<(PRODUCT_DIR)/lib.java/ui_java.dex.jar',
125               '<(PRODUCT_DIR)/lib.java/web_contents_delegate_android_java.dex.jar',
126               '<(PRODUCT_DIR)/lib.java/xwalk_core_extensions_java.dex.jar',
127               '<(PRODUCT_DIR)/lib.java/xwalk_core_java.dex.jar',
128               '<(PRODUCT_DIR)/lib.java/xwalk_runtime_java.dex.jar',
129               '<(SHARED_INTERMEDIATE_DIR)/xwalk_native_libraries/'
130                   'xwalk_native_libraries.jar' ],
131             'output_path': '<(PRODUCT_DIR)/lib.java/xwalk_runtime_embedded.dex.jar',
132           },
133           'includes': [ '../build/android/dex_action.gypi' ],
134         },
135       ],
136     },
137     {
138       'target_name': 'xwalk_core_jar_jni',
139       'type': 'none',
140       'variables': {
141         'jni_gen_package': 'xwalk',
142         'input_java_class': 'java/io/InputStream.class',
143       },
144       'includes': [ '../build/jar_file_jni_generator.gypi' ],
145     },
146     {
147       'target_name': 'xwalk_core_native_jni',
148       'type': 'none',
149       'variables': {
150         'jni_gen_package': 'xwalk',
151         'jni_generator_ptr_type': 'int',
152       },
153       'sources': [
154         'runtime/android/core/src/org/xwalk/core/AndroidProtocolHandler.java',
155         'runtime/android/core/src/org/xwalk/core/InterceptedRequestData.java',
156         'runtime/android/core/src/org/xwalk/core/XWalkHttpAuthHandler.java',
157         'runtime/android/core/src/org/xwalk/core/XWalkContentsClientBridge.java',
158         'runtime/android/core/src/org/xwalk/core/XWalkContentsIoThreadClient.java',
159         'runtime/android/core/src/org/xwalk/core/XWalkContent.java',
160         'runtime/android/core/src/org/xwalk/core/XWalkCookieManager.java',
161         'runtime/android/core/src/org/xwalk/core/XWalkDevToolsServer.java',
162         'runtime/android/core/src/org/xwalk/core/XWalkSettings.java',
163         'runtime/android/core/src/org/xwalk/core/XWalkWebContentsDelegate.java',
164       ],
165       'includes': ['../build/jni_generator.gypi'],
166     },
167     {
168       'target_name': 'xwalk_core_extensions_java',
169       'type': 'none',
170       'dependencies': [
171         '../content/content.gyp:content_java',
172       ],
173       'variables': {
174         'java_in_dir': 'extensions/android/java',
175         'has_java_resources': 0,
176         'R_package': 'org.xwalk.core.extensions',
177         'R_package_relpath': 'org/xwalk/core/extensions',
178       },
179       'includes': ['../build/java.gypi'],
180     },
181     {
182       'target_name': 'xwalk_core_extensions_native_jni',
183       'type': 'none',
184       'variables': {
185         'jni_gen_package': 'xwalk',
186         'jni_generator_ptr_type': 'int',
187       },
188       'sources': [
189         'extensions/android/java/src/org/xwalk/core/extensions/XWalkExtensionAndroid.java',
190       ],
191       'includes': ['../build/jni_generator.gypi'],
192     },
193     {
194       'target_name': 'xwalk_runtime_lib_apk',
195       'type': 'none',
196       'dependencies': [
197         'libxwalkcore',
198         'xwalk_core_extensions_java',
199         'xwalk_runtime_java',
200         'xwalk_runtime_lib_apk_extension',
201         'xwalk_runtime_lib_apk_pak',
202       ],
203       'variables': {
204         'apk_name': 'XWalkRuntimeLib',
205         'java_in_dir': 'runtime/android/runtime_lib',
206         'resource_dir': 'runtime/android/runtime_lib/res',
207         'native_lib_target': 'libxwalkcore',
208         'additional_input_paths': [
209           '<(PRODUCT_DIR)/xwalk_runtime_lib/assets/jsapi/contacts_api.js',
210           '<(PRODUCT_DIR)/xwalk_runtime_lib/assets/jsapi/device_capabilities_api.js',
211           '<(PRODUCT_DIR)/xwalk_runtime_lib/assets/jsapi/launch_screen_api.js',
212           '<(PRODUCT_DIR)/xwalk_runtime_lib/assets/jsapi/messaging_api.js',
213           '<(PRODUCT_DIR)/xwalk_runtime_lib/assets/jsapi/presentation_api.js',
214           '<(PRODUCT_DIR)/xwalk_runtime_lib/assets/jsapi/screen_orientation_api.js',
215           '<(PRODUCT_DIR)/xwalk_runtime_lib/assets/xwalk.pak',
216         ],
217         'asset_location': '<(PRODUCT_DIR)/xwalk_runtime_lib/assets',
218         'app_manifest_version_name': '<(xwalk_version)',
219         'app_manifest_version_code': '<(xwalk_version_code)',
220       },
221       'includes': ['../build/java_apk.gypi'],
222     },
223     {
224       'target_name': 'xwalk_runtime_lib_apk_pak',
225       'type': 'none',
226       'dependencies': [
227         'xwalk_pak',
228       ],
229       'copies': [
230         {
231           'destination': '<(PRODUCT_DIR)/xwalk_runtime_lib/assets',
232           'files': [
233             '<(PRODUCT_DIR)/xwalk.pak',
234           ],
235         },
236       ],
237     },
238     {
239       'target_name': 'xwalk_runtime_lib_apk_extension',
240       'type': 'none',
241       'copies': [
242         {
243           'destination': '<(PRODUCT_DIR)/xwalk_runtime_lib/assets/jsapi',
244           'files': [
245             'experimental/launch_screen/launch_screen_api.js',
246             'experimental/presentation/presentation_api.js',
247             'runtime/android/core/src/org/xwalk/core/extension/api/contacts/contacts_api.js',
248             'runtime/android/core/src/org/xwalk/core/extension/api/device_capabilities/device_capabilities_api.js',
249             'runtime/android/core/src/org/xwalk/core/extension/api/messaging/messaging_api.js',
250             'runtime/extension/screen_orientation_api.js',
251           ],
252         },
253       ],
254     },
255   ],
256 }