• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2022 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15import("../config.gni")
16
17config("ohos_adapter_public_interface") {
18  include_dirs = [ "interfaces" ]
19}
20
21ohos_shared_library("nweb_ohos_adapter") {
22  if (target_cpu == "arm64") {
23    branch_protector_ret = "pac_ret"
24  }
25
26  if (target_cpu == "arm") {
27    libs = [
28      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libbundle_ndk.z.so",
29      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libasset_ndk.z.so",
30      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libnative_drawing.so",
31    ]
32  } else if (target_cpu == "arm64") {
33    libs = [
34      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/aarch64-linux-ohos/libbundle_ndk.z.so",
35      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/aarch64-linux-ohos/libasset_ndk.z.so",
36      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/aarch64-linux-ohos/libnative_drawing.so",
37    ]
38  } else if (target_cpu == "x86_64") {
39    libs = [
40      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/x86_64-linux-ohos/libbundle_ndk.z.so",
41      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/x86_64-linux-ohos/libasset_ndk.z.so",
42      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/x86_64-linux-ohos/libnative_drawing.so",
43    ]
44  }
45
46  defines = [
47    "HILOG_TAG=\"webadapter\"",
48    "WEBVIEW_PACKAGE_NAME=\"${webview_package_name}\"",
49    "WEBVIEW_SANDBOX_LIB_PATH=\"${webview_sandbox_lib_path}\"",
50    "WEBVIEW_CRASHPAD_HANDLER_SO=\"${webview_crashpad_handler_so}\"",
51    "WEBVIEW_SANDBOX_RELATIVE_LIB_PATH=\"${webview_sandbox_relative_lib_path}\"",
52    "WEBVIEW_ENGINE_SO=\"${webview_engine_so}\"",
53    "WEBVIEW_SANDBOX_HAP_PATH=\"${webview_sandbox_hap_path}\"",
54    "WEBVIEW_APP_HAP_PATH=\"${webview_app_hap_path}\"",
55    "WEBVIEW_APP_HAP_PATH2=\"${webview_app_hap_path2}\"",
56    "WEBVIEW_HAP_PATH=\"${webview_hap_path}\"",
57    "WEBVIEW_SANDBOX_PATH=\"${webview_sandbox_path}\"",
58  ]
59
60  sources = [
61    "aafwk_adapter/src/aafwk_app_mgr_client_adapter_impl.cpp",
62    "aafwk_adapter/src/aafwk_browser_client_adapter_impl.cpp",
63    "aafwk_adapter/src/aafwk_browser_host_impl.cpp",
64    "aafwk_adapter/src/aafwk_render_scheduler_impl.cpp",
65    "access_token_adapter/src/access_token_adapter_impl.cpp",
66    "background_task_adapter/src/background_task_impl.cpp",
67    "cert_mgr_adapter/src/cert_mgr_adapter_impl.cpp",
68    "datashare_adapter/src/datashare_adapter_impl.cpp",
69    "date_time_format_adapter/src/date_time_format_adapter_impl.cpp",
70    "display_manager_adapter/src/display_manager_adapter_impl.cpp",
71    "distributeddatamgr_adapter/webdatabase/src/ohos_web_data_base_adapter_impl.cpp",
72    "distributeddatamgr_adapter/webdatabase/src/ohos_web_permission_data_base_adapter_impl.cpp",
73    "drawing_text_adapter/src/ohos_drawing_text_adapter_impl.cpp",
74    "enterprise_device_management_adapter/src/enterprise_device_management_adapter_impl.cpp",
75    "event_handler_adapter/src/event_handler_adapter_impl.cpp",
76    "flowbuffer_adapter/src/flowbuffer_adapter_impl.cpp",
77    "graphic_adapter/src/ashmem_adapter_impl.cpp",
78    "graphic_adapter/src/native_image_adapter_impl.cpp",
79    "graphic_adapter/src/surface_adapter_impl.cpp",
80    "graphic_adapter/src/vsync_adapter_impl.cpp",
81    "graphic_adapter/src/window_adapter_impl.cpp",
82    "hiviewdfx_adapter/src/hilog_adapter.cpp",
83    "hiviewdfx_adapter/src/hisysevent_adapter_impl.cpp",
84    "hiviewdfx_adapter/src/hitrace_adapter_impl.cpp",
85    "inputmethodframework_adapter/src/imf_adapter_impl.cpp",
86    "keystore_adapter/src/keystore_adapter_impl.cpp",
87    "migration_manager_adapter/src/migration_manager_adapter_impl.cpp",
88    "multimodalinput_adapter/src/mmi_adapter_impl.cpp",
89    "net_proxy_adapter/src/net_proxy_adapter_impl.cpp",
90    "ohos_adapter_helper/src/ohos_adapter_helper_impl.cpp",
91    "ohos_image_adapter/src/ohos_image_decoder_adapter_impl.cpp",
92    "ohos_init_web_adapter/src/ohos_init_web_adapter_impl.cpp",
93    "ohos_native_buffer_adapter/src/ohos_native_buffer_adapter_impl.cpp",
94    "ohos_resource_adapter/src/ohos_resource_adapter_impl.cpp",
95    "pasteboard_adapter/src/pasteboard_client_adapter_impl.cpp",
96    "print_manager_adapter/src/print_manager_adapter_impl.cpp",
97    "res_sched_adapter/src/res_sched_client_adapter_impl.cpp",
98    "soc_perf_adapter/src/soc_perf_client_adapter_impl.cpp",
99    "system_properties_adapter/src/system_properties_adapter_impl.cpp",
100  ]
101
102  cflags = [
103    "-Wall",
104    "-Werror",
105    "-g3",
106  ]
107
108  include_dirs = [
109    "../ohos_interface/include/ohos_adapter",
110    "../ohos_interface/include/ohos_nweb",
111    "../ohos_nweb/include",
112    "aafwk_adapter/include",
113    "access_token_adapter/include",
114    "audio_adapter/include",
115    "battery_mgr_adapter/include",
116    "camera_adapter/include",
117    "cert_mgr_adapter/include",
118    "datashare_adapter/include",
119    "date_time_format_adapter/include",
120    "display_manager_adapter/include",
121    "migration_manager_adapter/include",
122    "distributeddatamgr_adapter/webdatabase/include",
123    "drawing_text_adapter/include",
124    "enterprise_device_management_adapter/include",
125    "event_handler_adapter/include",
126    "flowbuffer_adapter/include",
127    "graphic_adapter/include",
128    "hiviewdfx_adapter/include",
129    "inputmethodframework_adapter/include",
130    "keystore_adapter/include",
131    "location_adapter/include",
132    "media_adapter/include",
133    "multimodalinput_adapter/include",
134    "net_connect_adapter/include",
135    "net_proxy_adapter/include",
136    "ohos_adapter_helper/include",
137    "ohos_image_adapter/include",
138    "ohos_init_web_adapter/include",
139    "ohos_native_buffer_adapter/include",
140    "ohos_resource_adapter/include",
141    "pasteboard_adapter/include",
142    "power_mgr_adapter/include",
143    "print_manager_adapter/include",
144    "screen_capture_adapter/include",
145    "soc_perf_adapter/include",
146    "system_properties_adapter/include",
147    "sensor_adapter/include",
148  ]
149
150  if (target_cpu == "arm" || target_cpu == "arm64" || target_cpu == "x86_64") {
151    include_dirs += [
152      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/include/bundle",
153      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/include/asset",
154      "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/include/native_drawing",
155    ]
156  }
157
158  public_configs = [ ":ohos_adapter_public_interface" ]
159
160  external_deps = [
161    "ability_base:extractortool",
162    "ability_base:zuri",
163    "ability_runtime:ability_manager",
164    "ability_runtime:abilitykit_native",
165    "ability_runtime:app_context",
166    "ability_runtime:app_manager",
167    "access_token:libaccesstoken_sdk",
168    "app_file_service:fileuri_native",
169    "background_task_mgr:bgtaskmgr_innerkits",
170    "bundle_framework:appexecfwk_base",
171    "bundle_framework:appexecfwk_core",
172    "c_utils:utils",
173    "certificate_manager:cert_manager_sdk",
174    "common_event_service:cesfwk_innerkits",
175    "data_share:datashare_common",
176    "data_share:datashare_consumer",
177    "eventhandler:libeventhandler",
178    "file_api:remote_uri_native",
179    "graphic_2d:libcomposer",
180    "graphic_2d:libnative_image",
181    "graphic_2d:librender_service_client",
182    "graphic_surface:surface",
183    "hilog:libhilog",
184    "hisysevent:libhisysevent",
185    "hitrace:hitrace_meter",
186    "huks:libhukssdk",
187    "i18n:intl_util",
188    "image_framework:image_native",
189    "imf:inputmethod_client",
190    "init:libbeget_proxy",
191    "init:libbegetutil",
192    "input:libmmi-client",
193    "ipc:ipc_core",
194    "napi:ace_napi",
195    "netmanager_base:net_conn_manager_if",
196    "openssl:libssl_shared",
197    "pasteboard:pasteboard_client",
198    "relational_store:native_rdb",
199    "resource_schedule_service:ressched_client",
200    "samgr:samgr_proxy",
201    "time_service:time_client",
202    "window_manager:libdm",
203    "window_manager:libdm_ndk",
204  ]
205  public_external_deps = [ "ability_base:want" ]
206
207  if (webview_soc_perf_enable) {
208    external_deps += [ "soc_perf:socperf_client" ]
209    defines += [ "NWEB_SOC_PERF" ]
210  }
211
212  if (webview_audio_enable) {
213    sources += [
214      "audio_adapter/src/audio_capturer_adapter_impl.cpp",
215      "audio_adapter/src/audio_device_desc_adapter_impl.cpp",
216      "audio_adapter/src/audio_renderer_adapter_impl.cpp",
217      "audio_adapter/src/audio_system_manager_adapter_impl.cpp",
218    ]
219    external_deps += [
220      "audio_framework:audio_capturer",
221      "audio_framework:audio_client",
222      "audio_framework:audio_foundation",
223      "audio_framework:audio_renderer",
224    ]
225    defines += [ "NWEB_AUDIO_ENABLE" ]
226  } else {
227    sources += [
228      "audio_adapter/src/audio_capturer_adapter_mock.cpp",
229      "audio_adapter/src/audio_device_desc_adapter_mock.cpp",
230      "audio_adapter/src/audio_renderer_adapter_mock.cpp",
231      "audio_adapter/src/audio_system_manager_adapter_mock.cpp",
232    ]
233  }
234
235  if (webview_location_enable) {
236    sources += [
237      "location_adapter/src/location_callback_adapter_impl.cpp",
238      "location_adapter/src/location_instance_impl.cpp",
239      "location_adapter/src/location_proxy_adapter_impl.cpp",
240    ]
241    external_deps += [
242      "location:lbsservice_common",
243      "location:locator_sdk",
244    ]
245    defines += [ "NWEB_LOCATION_ENABLE" ]
246  } else {
247    sources += [ "location_adapter/src/location_proxy_adapter_mock.cpp" ]
248  }
249
250  if (webview_avcodec_enable) {
251    sources += [
252      "media_adapter/src/buffer_info_adapter_impl.cpp",
253      "media_adapter/src/capability_data_adapter_impl.cpp",
254      "media_adapter/src/codec_format_adapter_impl.cpp",
255      "media_adapter/src/media_codec_decoder_adapter_impl.cpp",
256      "media_adapter/src/media_codec_encoder_adapter_impl.cpp",
257      "media_adapter/src/media_codec_list_adapter_impl.cpp",
258      "media_adapter/src/ohos_buffer_adapter_impl.cpp",
259    ]
260    if (target_cpu == "arm") {
261      libs += [
262        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libnative_media_vdec.so",
263        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libnative_media_codecbase.so",
264        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libnative_buffer.so",
265        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libnative_media_core.so",
266        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libnative_window.so",
267      ]
268    } else if (target_cpu == "arm64") {
269      libs += [
270        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/aarch64-linux-ohos/libnative_media_vdec.so",
271        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/aarch64-linux-ohos/libnative_media_codecbase.so",
272        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/aarch64-linux-ohos/libnative_buffer.so",
273        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/aarch64-linux-ohos/libnative_media_core.so",
274        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/aarch64-linux-ohos/libnative_window.so",
275      ]
276    } else if (target_cpu == "x86_64") {
277      libs += [
278        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/x86_64-linux-ohos/libnative_media_vdec.so",
279        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/x86_64-linux-ohos/libnative_media_codecbase.so",
280        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/x86_64-linux-ohos/libnative_buffer.so",
281        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/x86_64-linux-ohos/libnative_media_core.so",
282        "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/x86_64-linux-ohos/libnative_window.so",
283      ]
284    }
285    external_deps += [
286      "av_codec:av_codec_client",
287      "media_foundation:media_foundation",
288    ]
289    if (webview_drm_enable) {
290      sources += [
291        "media_adapter/src/audio_cenc_info_adapter_impl.cpp",
292        "media_adapter/src/audio_codec_decoder_adapter_impl.cpp",
293        "media_adapter/src/drm_adapter_impl.cpp",
294      ]
295      external_deps += [ "drm_framework:native_drm" ]
296      if (target_cpu == "arm") {
297        libs += [
298          "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libnative_media_acodec.so",
299          "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/arm-linux-ohos/libnative_media_avcencinfo.so",
300        ]
301      } else if (target_cpu == "arm64") {
302        libs += [
303          "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/aarch64-linux-ohos/libnative_media_acodec.so",
304          "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/aarch64-linux-ohos/libnative_media_avcencinfo.so",
305        ]
306      } else if (target_cpu == "x86_64") {
307        libs += [
308          "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/x86_64-linux-ohos/libnative_media_acodec.so",
309          "//prebuilts/ohos-sdk/linux/18/native/sysroot/usr/lib/x86_64-linux-ohos/libnative_media_avcencinfo.so",
310        ]
311      }
312      defines += [ "NWEB_AUDIO_DRM_ENABLE" ]
313    }
314    defines += [ "NWEB_MEDIA_AVCODEC_ENABLE" ]
315  } else {
316    sources += [ "media_adapter/src/media_codec_list_adapter_mock.cpp" ]
317  }
318
319  if (webview_media_player_enable) {
320    sources += [ "media_adapter/src/player_framework_adapter_impl.cpp" ]
321    external_deps += [ "player_framework:media_client" ]
322    defines += [ "NWEB_MEDIA_PLAYER_ENABLE" ]
323  }
324
325  if (webview_camera_enable) {
326    sources += [
327      "camera_adapter/src/camera_manager_adapter_impl.cpp",
328      "camera_adapter/src/camera_rotation_info_adapter_impl.cpp",
329      "camera_adapter/src/format_adapter_impl.cpp",
330      "camera_adapter/src/video_capture_range_adapter_impl.cpp",
331      "camera_adapter/src/video_control_support_adapter_impl.cpp",
332      "camera_adapter/src/video_device_descriptor_adapter_impl.cpp",
333      "screen_capture_adapter/src/screen_capture_adapter_impl.cpp",
334    ]
335    external_deps += [ "camera_framework:camera_framework" ]
336    defines += [ "NWEB_CAMERA_ENABLE" ]
337  } else {
338    sources += [
339      "camera_adapter/src/camera_manager_adapter_mock.cpp",
340      "camera_adapter/src/camera_rotation_info_adapter_mock.cpp",
341      "camera_adapter/src/format_adapter_mock.cpp",
342      "camera_adapter/src/video_capture_range_adapter_mock.cpp",
343      "camera_adapter/src/video_control_support_adapter_mock.cpp",
344      "camera_adapter/src/video_device_descriptor_adapter_mock.cpp",
345    ]
346  }
347
348  if (webview_telephony_enable) {
349    sources += [
350      "net_connect_adapter/src/net_capabilities_adapter_impl.cpp",
351      "net_connect_adapter/src/net_connect_adapter_impl.cpp",
352      "net_connect_adapter/src/net_connect_callback_impl.cpp",
353      "net_connect_adapter/src/net_connect_utils.cpp",
354      "net_connect_adapter/src/net_connection_properties_adapter_impl.cpp",
355    ]
356    external_deps += [
357      "cellular_data:tel_cellular_data_api",
358      "core_service:tel_core_service_api",
359    ]
360    defines += [ "NWEB_TEL_ENABLE" ]
361  }
362
363  if (webview_battery_manager_enable) {
364    sources += [ "battery_mgr_adapter/src/battery_mgr_client_adapter_impl.cpp" ]
365    external_deps += [ "battery_manager:batterysrv_client" ]
366    defines += [ "NWEB_BATTERY_MANAGER_ENABLE" ]
367  }
368
369  if (webview_power_manager_enable) {
370    sources += [ "power_mgr_adapter/src/power_mgr_client_adapter_impl.cpp" ]
371    external_deps += [ "power_manager:powermgr_client" ]
372    defines += [ "NWEB_POWER_MANAGER_ENABLE" ]
373  }
374
375  if (webview_print_enable) {
376    external_deps += [
377      "print_fwk:print_client",
378      "print_fwk:print_helper",
379      "print_fwk:print_models",
380    ]
381    defines += [ "NWEB_PRINT_ENABLE" ]
382  }
383
384  if (webview_enterprise_device_manager_enable) {
385    external_deps += [ "enterprise_device_management:edmservice_kits" ]
386    defines += [ "NWEB_ENTERPRISE_DEVICE_MANAGER_ENABLE" ]
387  }
388
389  if (webview_media_avsession_enable) {
390    sources += [ "media_adapter/src/media_avsession_adapter_impl.cpp" ]
391    external_deps += [ "av_session:avsession_client" ]
392    defines += [ "NWEB_MEDIA_AVSESSION_ENABLE" ]
393  }
394
395  if (webview_sensors_sensor_enable) {
396    sources += [ "sensor_adapter/src/sensor_adapter_impl.cpp" ]
397    external_deps += [ "sensor:sensor_interface_native" ]
398    defines += [ "NWEB_SENSORS_SENSOR_ENABLE" ]
399  }
400
401  innerapi_tags = [ "platformsdk" ]
402  part_name = "webview"
403  subsystem_name = "web"
404
405  deps = [ "../ohos_nweb:web_configs" ]
406
407  if (webview_graphic_2d_ext_enable) {
408    external_deps += [ "graphic_2d_ext:libaps_client" ]
409    defines += [ "NWEB_GRAPHIC_2D_EXT_ENABLE" ]
410  }
411}
412