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