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    branch_protector_frt = "bti"
25  }
26
27  defines = [
28    "HILOG_TAG=\"webadapter\"",
29    "WEBVIEW_PACKAGE_NAME=\"${webview_package_name}\"",
30    "WEBVIEW_SANDBOX_LIB_PATH=\"${webview_sandbox_lib_path}\"",
31    "WEBVIEW_CRASHPAD_HANDLER_SO=\"${webview_crashpad_handler_so}\"",
32    "WEBVIEW_SANDBOX_RELATIVE_LIB_PATH=\"${webview_sandbox_relative_lib_path}\"",
33    "WEBVIEW_ENGINE_SO=\"${webview_engine_so}\"",
34    "WEBVIEW_SANDBOX_HAP_PATH=\"${webview_sandbox_hap_path}\"",
35    "WEBVIEW_APP_HAP_PATH=\"${webview_app_hap_path}\"",
36    "WEBVIEW_APP_HAP_PATH2=\"${webview_app_hap_path2}\"",
37    "WEBVIEW_HAP_PATH=\"${webview_hap_path}\"",
38    "WEBVIEW_SANDBOX_PATH=\"${webview_sandbox_path}\"",
39  ]
40
41  sources = [
42    "aafwk_adapter/src/aafwk_app_mgr_client_adapter_impl.cpp",
43    "aafwk_adapter/src/aafwk_browser_client_adapter_impl.cpp",
44    "aafwk_adapter/src/aafwk_browser_host_impl.cpp",
45    "aafwk_adapter/src/aafwk_render_scheduler_impl.cpp",
46    "access_token_adapter/src/access_token_adapter_impl.cpp",
47    "background_task_adapter/src/background_task_impl.cpp",
48    "cert_mgr_adapter/src/cert_mgr_adapter_impl.cpp",
49    "datashare_adapter/src/datashare_adapter_impl.cpp",
50    "date_time_format_adapter/src/date_time_format_adapter_impl.cpp",
51    "display_manager_adapter/src/display_manager_adapter_impl.cpp",
52    "distributeddatamgr_adapter/webdatabase/src/ohos_web_data_base_adapter_impl.cpp",
53    "distributeddatamgr_adapter/webdatabase/src/ohos_web_permission_data_base_adapter_impl.cpp",
54    "enterprise_device_management_adapter/src/enterprise_device_management_adapter_impl.cpp",
55    "event_handler_adapter/src/event_handler_adapter_impl.cpp",
56    "flowbuffer_adapter/src/flowbuffer_adapter_impl.cpp",
57    "graphic_adapter/src/ashmem_adapter_impl.cpp",
58    "graphic_adapter/src/native_image_adapter_impl.cpp",
59    "graphic_adapter/src/surface_adapter_impl.cpp",
60    "graphic_adapter/src/vsync_adapter_impl.cpp",
61    "graphic_adapter/src/window_adapter_impl.cpp",
62    "hiviewdfx_adapter/src/hilog_adapter.cpp",
63    "hiviewdfx_adapter/src/hisysevent_adapter_impl.cpp",
64    "hiviewdfx_adapter/src/hitrace_adapter_impl.cpp",
65    "inputmethodframework_adapter/src/imf_adapter_impl.cpp",
66    "keystore_adapter/src/keystore_adapter_impl.cpp",
67    "multimodalinput_adapter/src/mmi_adapter_impl.cpp",
68    "net_proxy_adapter/src/net_proxy_adapter_impl.cpp",
69    "ohos_adapter_helper/src/ohos_adapter_helper_impl.cpp",
70    "ohos_image_adapter/src/ohos_image_decoder_adapter_impl.cpp",
71    "ohos_init_web_adapter/src/ohos_init_web_adapter_impl.cpp",
72    "ohos_native_buffer_adapter/src/ohos_native_buffer_adapter_impl.cpp",
73    "ohos_resource_adapter/src/ohos_resource_adapter_impl.cpp",
74    "pasteboard_adapter/src/pasteboard_client_adapter_impl.cpp",
75    "print_manager_adapter/src/print_manager_adapter_impl.cpp",
76    "res_sched_adapter/src/res_sched_client_adapter_impl.cpp",
77    "soc_perf_adapter/src/soc_perf_client_adapter_impl.cpp",
78    "system_properties_adapter/src/system_properties_adapter_impl.cpp",
79  ]
80
81  cflags = [
82    "-Wall",
83    "-Werror",
84    "-g3",
85  ]
86
87  include_dirs = [
88    "../ohos_nweb/include",
89    "aafwk_adapter/include",
90    "access_token_adapter/include",
91    "audio_adapter/include",
92    "battery_mgr_adapter/include",
93    "camera_adapter/include",
94    "cert_mgr_adapter/include",
95    "datashare_adapter/include",
96    "date_time_format_adapter/include",
97    "display_manager_adapter/include",
98    "distributeddatamgr_adapter/webdatabase/include",
99    "enterprise_device_management_adapter/include",
100    "event_handler_adapter/include",
101    "flowbuffer_adapter/include",
102    "graphic_adapter/include",
103    "hiviewdfx_adapter/include",
104    "inputmethodframework_adapter/include",
105    "keystore_adapter/include",
106    "location_adapter/include",
107    "media_adapter/include",
108    "multimodalinput_adapter/include",
109    "net_connect_adapter/include",
110    "net_proxy_adapter/include",
111    "ohos_adapter_helper/include",
112    "ohos_image_adapter/include",
113    "ohos_init_web_adapter/include",
114    "ohos_native_buffer_adapter/include",
115    "ohos_resource_adapter/include",
116    "pasteboard_adapter/include",
117    "power_mgr_adapter/include",
118    "print_manager_adapter/include",
119    "screen_capture_adapter/include",
120    "soc_perf_adapter/include",
121    "system_properties_adapter/include",
122    "sensor_adapter/include",
123  ]
124
125  public_configs = [ ":ohos_adapter_public_interface" ]
126
127  external_deps = [
128    "ability_base:extractortool",
129    "ability_base:zuri",
130    "ability_runtime:ability_manager",
131    "ability_runtime:abilitykit_native",
132    "ability_runtime:app_context",
133    "ability_runtime:app_manager",
134    "access_token:libaccesstoken_sdk",
135    "app_file_service:fileuri_native",
136    "background_task_mgr:bgtaskmgr_innerkits",
137    "bundle_framework:appexecfwk_base",
138    "bundle_framework:appexecfwk_core",
139    "c_utils:utils",
140    "certificate_manager:cert_manager_sdk",
141    "common_event_service:cesfwk_innerkits",
142    "data_share:datashare_common",
143    "data_share:datashare_consumer",
144    "eventhandler:libeventhandler",
145    "file_api:remote_uri_native",
146    "graphic_2d:libcomposer",
147    "graphic_2d:libnative_image",
148    "graphic_2d:librender_service_client",
149    "graphic_surface:surface",
150    "hilog:libhilog",
151    "hisysevent:libhisysevent",
152    "hitrace:hitrace_meter",
153    "huks:libhukssdk",
154    "i18n:intl_util",
155    "image_framework:image_native",
156    "imf:inputmethod_client",
157    "init:libbeget_proxy",
158    "init:libbegetutil",
159    "input:libmmi-client",
160    "ipc:ipc_core",
161    "napi:ace_napi",
162    "netmanager_base:net_conn_manager_if",
163    "openssl:libssl_shared",
164    "pasteboard:pasteboard_client",
165    "relational_store:native_rdb",
166    "resource_schedule_service:ressched_client",
167    "samgr:samgr_proxy",
168    "time_service:time_client",
169    "window_manager:libdm",
170    "window_manager:libdm_ndk",
171  ]
172  public_external_deps = [ "ability_base:want" ]
173
174  if (webview_soc_perf_enable) {
175    external_deps += [ "soc_perf:socperf_client" ]
176    defines += [ "NWEB_SOC_PERF" ]
177  }
178
179  if (webview_audio_enable) {
180    sources += [
181      "audio_adapter/src/audio_capturer_adapter_impl.cpp",
182      "audio_adapter/src/audio_device_desc_adapter_impl.cpp",
183      "audio_adapter/src/audio_renderer_adapter_impl.cpp",
184      "audio_adapter/src/audio_system_manager_adapter_impl.cpp",
185    ]
186    external_deps += [
187      "audio_framework:audio_capturer",
188      "audio_framework:audio_client",
189      "audio_framework:audio_renderer",
190    ]
191    defines += [ "NWEB_AUDIO_ENABLE" ]
192  } else {
193    sources += [
194      "audio_adapter/src/audio_capturer_adapter_mock.cpp",
195      "audio_adapter/src/audio_device_desc_adapter_mock.cpp",
196      "audio_adapter/src/audio_renderer_adapter_mock.cpp",
197      "audio_adapter/src/audio_system_manager_adapter_mock.cpp",
198    ]
199  }
200
201  if (webview_location_enable) {
202    sources += [
203      "location_adapter/src/location_callback_adapter_impl.cpp",
204      "location_adapter/src/location_instance_impl.cpp",
205      "location_adapter/src/location_proxy_adapter_impl.cpp",
206    ]
207    external_deps += [
208      "location:lbsservice_common",
209      "location:locator_sdk",
210    ]
211    defines += [ "NWEB_LOCATION_ENABLE" ]
212  } else {
213    sources += [ "location_adapter/src/location_proxy_adapter_mock.cpp" ]
214  }
215
216  if (webview_avcodec_enable) {
217    sources += [
218      "media_adapter/src/buffer_info_adapter_impl.cpp",
219      "media_adapter/src/capability_data_adapter_impl.cpp",
220      "media_adapter/src/codec_format_adapter_impl.cpp",
221      "media_adapter/src/media_codec_decoder_adapter_impl.cpp",
222      "media_adapter/src/media_codec_encoder_adapter_impl.cpp",
223      "media_adapter/src/media_codec_list_adapter_impl.cpp",
224      "media_adapter/src/ohos_buffer_adapter_impl.cpp",
225    ]
226    external_deps += [
227      "av_codec:av_codec_client",
228      "media_foundation:media_foundation",
229    ]
230    defines += [ "NWEB_MEDIA_AVCODEC_ENABLE" ]
231  } else {
232    sources += [ "media_adapter/src/media_codec_list_adapter_mock.cpp" ]
233  }
234
235  if (webview_media_player_enable) {
236    sources += [ "media_adapter/src/player_framework_adapter_impl.cpp" ]
237    external_deps += [ "player_framework:media_client" ]
238    defines += [ "NWEB_MEDIA_PLAYER_ENABLE" ]
239  }
240
241  if (webview_camera_enable) {
242    sources += [
243      "camera_adapter/src/camera_manager_adapter_impl.cpp",
244      "camera_adapter/src/camera_rotation_info_adapter_impl.cpp",
245      "camera_adapter/src/format_adapter_impl.cpp",
246      "camera_adapter/src/video_capture_range_adapter_impl.cpp",
247      "camera_adapter/src/video_control_support_adapter_impl.cpp",
248      "camera_adapter/src/video_device_descriptor_adapter_impl.cpp",
249      "screen_capture_adapter/src/screen_capture_adapter_impl.cpp",
250    ]
251    external_deps += [ "camera_framework:camera_framework" ]
252    defines += [ "NWEB_CAMERA_ENABLE" ]
253  } else {
254    sources += [
255      "camera_adapter/src/camera_manager_adapter_mock.cpp",
256      "camera_adapter/src/camera_rotation_info_adapter_mock.cpp",
257      "camera_adapter/src/format_adapter_mock.cpp",
258      "camera_adapter/src/video_capture_range_adapter_mock.cpp",
259      "camera_adapter/src/video_control_support_adapter_mock.cpp",
260      "camera_adapter/src/video_device_descriptor_adapter_mock.cpp",
261    ]
262  }
263
264  if (webview_telephony_enable) {
265    sources += [
266      "net_connect_adapter/src/net_capabilities_adapter_impl.cpp",
267      "net_connect_adapter/src/net_connect_adapter_impl.cpp",
268      "net_connect_adapter/src/net_connect_callback_impl.cpp",
269      "net_connect_adapter/src/net_connect_utils.cpp",
270      "net_connect_adapter/src/net_connection_properties_adapter_impl.cpp",
271    ]
272    external_deps += [
273      "cellular_data:tel_cellular_data_api",
274      "core_service:tel_core_service_api",
275    ]
276    defines += [ "NWEB_TEL_ENABLE" ]
277  }
278
279  if (webview_battery_manager_enable) {
280    sources += [ "battery_mgr_adapter/src/battery_mgr_client_adapter_impl.cpp" ]
281    external_deps += [ "battery_manager:batterysrv_client" ]
282    defines += [ "NWEB_BATTERY_MANAGER_ENABLE" ]
283  }
284
285  if (webview_power_manager_enable) {
286    sources += [ "power_mgr_adapter/src/power_mgr_client_adapter_impl.cpp" ]
287    external_deps += [ "power_manager:powermgr_client" ]
288    defines += [ "NWEB_POWER_MANAGER_ENABLE" ]
289  }
290
291  if (webview_print_enable) {
292    external_deps += [
293      "print_fwk:print_client",
294      "print_fwk:print_helper",
295      "print_fwk:print_models",
296    ]
297    defines += [ "NWEB_PRINT_ENABLE" ]
298  }
299
300  if (webview_enterprise_device_manager_enable) {
301    external_deps += [ "enterprise_device_management:edmservice_kits" ]
302    defines += [ "NWEB_ENTERPRISE_DEVICE_MANAGER_ENABLE" ]
303  }
304
305  if (webview_media_avsession_enable) {
306    sources += [ "media_adapter/src/media_avsession_adapter_impl.cpp" ]
307    external_deps += [ "av_session:avsession_client" ]
308    defines += [ "NWEB_MEDIA_AVSESSION_ENABLE" ]
309  }
310
311  if (webview_sensors_sensor_enable) {
312    sources += [ "sensor_adapter/src/sensor_adapter_impl.cpp" ]
313    external_deps += [ "sensor:sensor_interface_native" ]
314    defines += [ "NWEB_SENSORS_SENSOR_ENABLE" ]
315  }
316
317  innerapi_tags = [ "platformsdk" ]
318  part_name = "webview"
319  subsystem_name = "web"
320
321  deps = [ "../ohos_nweb:web_configs" ]
322
323  if (webview_graphic_2d_ext_enable) {
324    external_deps += [ "graphic_2d_ext:libaps_client" ]
325    defines += [ "NWEB_GRAPHIC_2D_EXT_ENABLE" ]
326  }
327}
328