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