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