1# Copyright (c) 2022-2024 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("../../bluetooth_part.gni") 16import("../../castplus_cast_engine_part.gni") 17import("../../config.gni") 18import("../../efficiency_manager_part.gni") 19 20openssl_dir = "//third_party/openssl" 21 22group("avsession_server") { 23 deps = [ 24 ":avsession_dynamic_insight", 25 ":avsession_item", 26 ":avsession_service", 27 "../../sa_profile:avsession_sa_profile", 28 "../etc:avsession_service.rc", 29 "../etc:ohos.para.dac", 30 ] 31} 32 33ohos_shared_library("avsession_service") { 34 stack_protector_ret = true 35 install_enable = true 36 sanitize = { 37 cfi = true 38 cfi_cross_dso = true 39 debug = false 40 } 41 ipc_sources = [ 42 "ipc/proxy/session_listener_proxy.cpp", 43 "ipc/stub/avsession_callback_stub.cpp", 44 "ipc/stub/avsession_service_stub.cpp", 45 ] 46 47 service_sources = [ 48 "server/avsession_dumper.cpp", 49 "server/avsession_service.cpp", 50 "server/avsession_service_ext.cpp", 51 "server/avsession_users_manager.cpp", 52 "server/background_audio_controller.cpp", 53 "server/focus_session_strategy.cpp", 54 "server/migrate/migrate_avsession_manager.cpp", 55 "server/migrate/migrate_avsession_server.cpp", 56 "server/session_stack.cpp", 57 "server/softbus/softbus_distributed_data_manager.cpp", 58 "server/softbus/softbus_session.cpp", 59 "server/softbus/softbus_session_manager.cpp", 60 "server/softbus/softbus_session_server.cpp", 61 ] 62 63 adapter_sources = [ 64 "adapter/ability_connect_helper.cpp", 65 "adapter/ability_manager_adapter.cpp", 66 "adapter/account_manager_adapter.cpp", 67 "adapter/app_manager_adapter.cpp", 68 "adapter/audio_adapter.cpp", 69 "adapter/bundle_status_adapter.cpp", 70 "adapter/collaboration_manager.cpp", 71 "adapter/key_event_adapter.cpp", 72 "adapter/params_config_operator.cpp", 73 "adapter/session_xcollie.cpp", 74 ] 75 76 sources = ipc_sources + adapter_sources + service_sources 77 78 include_dirs = [ 79 "ipc/base", 80 "ipc/proxy", 81 "ipc/stub", 82 "adapter", 83 "server", 84 "server/migrate", 85 "server/softbus", 86 "server/remote", 87 "../../frameworks/native/session/include", 88 "../../interfaces/inner_api/native/session/include", 89 "//third_party/json/single_include", 90 "$openssl_dir/include/", 91 "$commontype_dir/include", 92 ] 93 94 cflags = [ 95 "-fPIC", 96 "-fdata-sections", 97 "-ffunction-sections", 98 "-fno-asynchronous-unwind-tables", 99 "-fno-unwind-tables", 100 "-Os", 101 ] 102 103 if (multimedia_av_session_enable_background_audio_control) { 104 cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ] 105 } 106 107 if (!use_libfuzzer) { 108 cflags += [ "-flto" ] 109 ldflags = [ 110 "-flto", 111 "-Wl,--gc-sections", 112 ] 113 } 114 cflags_cc = cflags 115 cflags_cc += [ "-fvisibility-inlines-hidden" ] 116 117 defines = [] 118 if (target_cpu == "arm64" || is_emulator) { 119 system_lib_path = "\"/system/lib64/\"" 120 } else { 121 system_lib_path = "\"/system/lib/\"" 122 } 123 defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ] 124 125 deps = [ 126 "$openssl_dir:libcrypto_shared", 127 "./../../frameworks/common:avsession_common", 128 "./../../frameworks/native/session:avsession_client", 129 "./../../utils:avsession_utils", 130 "./../session:avsession_item", 131 "//third_party/jsoncpp:jsoncpp", 132 "//third_party/openssl:libcrypto_shared", 133 ] 134 135 external_deps = [ 136 "ability_base:base", 137 "ability_base:want", 138 "ability_base:zuri", 139 "ability_runtime:app_manager", 140 "ability_runtime:wantagent_innerkits", 141 "access_token:libaccesstoken_sdk", 142 "access_token:libtokenid_sdk", 143 "access_token:libtokensetproc_shared", 144 "audio_framework:audio_client", 145 "background_task_mgr:bgtaskmgr_innerkits", 146 "bundle_framework:appexecfwk_base", 147 "bundle_framework:appexecfwk_core", 148 "c_utils:utils", 149 "data_object:distributeddataobject_impl", 150 "device_manager:devicemanagersdk", 151 "distributed_notification_service:ans_innerkits", 152 "dsoftbus:softbus_client", 153 "graphic_surface:surface", 154 "hilog:libhilog", 155 "image_framework:image_native", 156 "init:libbegetutil", 157 "input:libmmi-client", 158 "ipc:ipc_single", 159 "os_account:os_account_innerkits", 160 "relational_store:native_rdb", 161 "safwk:system_ability_fwk", 162 "samgr:samgr_proxy", 163 "window_manager:libdm_lite", 164 ] 165 166 if (castplus_cast_engine_enable) { 167 cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] 168 external_deps += [ "cast_engine:cast_engine_client" ] 169 deps += [ 170 "../../frameworks/native/session:avsession_cast_client", 171 "./../session:avsession_cast_item", 172 "./../session:avsession_router", 173 ] 174 } 175 176 if (bluetooth_part_enable) { 177 cflags += [ "-DBLUETOOTH_ENABLE" ] 178 external_deps += [ "bluetooth:btframework" ] 179 } 180 181 if (efficiency_manager_enable_in_avsession) { 182 cflags += [ "-DEFFICIENCY_MANAGER_ENABLE" ] 183 } 184 185 if (multimedia_av_session_enable_trace_control) { 186 cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] 187 external_deps += [ "hitrace:hitrace_meter" ] 188 } 189 190 if (multimedia_av_session_enable_sysevent_control) { 191 cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] 192 external_deps += [ "hisysevent:libhisysevent" ] 193 } 194 195 if (multimedia_av_session_enable_hicollie) { 196 external_deps += [ "hicollie:libhicollie" ] 197 defines += [ "HICOLLIE_ENABLE" ] 198 } 199 200 if (use_libfuzzer || use_clang_coverage) { 201 defines += [ "TEST_COVERAGE" ] 202 } 203 204 subsystem_name = "multimedia" 205 part_name = "av_session" 206} 207 208if (castplus_cast_engine_enable) { 209 ohos_shared_library("avsession_router") { 210 install_enable = true 211 sanitize = { 212 cfi = true 213 cfi_cross_dso = true 214 debug = false 215 } 216 ipc_sources = [] 217 218 service_sources = [ 219 "server/avcast_provider_manager.cpp", 220 "server/avrouter.cpp", 221 "server/avrouter_impl.cpp", 222 "server/hw_cast_provider.cpp", 223 "server/hw_cast_provider_session.cpp", 224 "server/hw_cast_stream_player.cpp", 225 ] 226 227 adapter_sources = [] 228 229 sources = ipc_sources + adapter_sources + service_sources 230 231 include_dirs = [ 232 "./../../frameworks/native/session/include", 233 "./../../interfaces/inner_api/native/session/include", 234 "./adapter", 235 "./server", 236 "./ipc/stub", 237 ] 238 239 cflags = [ 240 "-fPIC", 241 "-fdata-sections", 242 "-ffunction-sections", 243 "-fno-asynchronous-unwind-tables", 244 "-fno-unwind-tables", 245 "-Os", 246 ] 247 248 if (multimedia_av_session_enable_background_audio_control) { 249 cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ] 250 } 251 252 if (!use_libfuzzer) { 253 cflags += [ "-flto" ] 254 ldflags = [ 255 "-flto", 256 "-Wl,--gc-sections", 257 ] 258 } 259 cflags_cc = cflags 260 cflags_cc += [ "-fvisibility-inlines-hidden" ] 261 262 defines = [] 263 if (target_cpu == "arm64" || is_emulator) { 264 system_lib_path = "\"/system/lib64/\"" 265 } else { 266 system_lib_path = "\"/system/lib/\"" 267 } 268 defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ] 269 270 deps = [ 271 "../../frameworks/common:avsession_common", 272 "../../frameworks/native/session:avsession_client", 273 "../../utils:avsession_utils", 274 ] 275 276 external_deps = [ 277 "ability_base:base", 278 "ability_base:want", 279 "ability_runtime:app_manager", 280 "ability_runtime:wantagent_innerkits", 281 "access_token:libaccesstoken_sdk", 282 "access_token:libtokenid_sdk", 283 "audio_framework:audio_client", 284 "bundle_framework:appexecfwk_base", 285 "bundle_framework:appexecfwk_core", 286 "c_utils:utils", 287 "data_object:distributeddataobject_impl", 288 "device_manager:devicemanagersdk", 289 "graphic_surface:surface", 290 "hilog:libhilog", 291 "image_framework:image_native", 292 "input:libmmi-client", 293 "ipc:ipc_single", 294 "safwk:system_ability_fwk", 295 "samgr:samgr_proxy", 296 ] 297 298 if (castplus_cast_engine_enable) { 299 cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] 300 external_deps += [ "cast_engine:cast_engine_client" ] 301 service_sources += [ "" ] 302 } 303 304 if (multimedia_av_session_enable_trace_control) { 305 cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] 306 external_deps += [ "hitrace:hitrace_meter" ] 307 } 308 if (multimedia_av_session_enable_sysevent_control) { 309 cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] 310 external_deps += [ "hisysevent:libhisysevent" ] 311 } 312 313 subsystem_name = "multimedia" 314 part_name = "av_session" 315 } 316} 317 318ohos_shared_library("avsession_dynamic_insight") { 319 install_enable = true 320 sanitize = { 321 cfi = true 322 cfi_cross_dso = true 323 debug = false 324 } 325 326 sources = [ "adapter/avsession_dynamic_insight.cpp" ] 327 328 include_dirs = [ 329 "./../../frameworks/native/session/include", 330 "./../../interfaces/inner_api/native/session/include", 331 "./adapter", 332 "ipc/base", 333 ] 334 335 cflags = [ 336 "-fPIC", 337 "-fdata-sections", 338 "-ffunction-sections", 339 "-fno-asynchronous-unwind-tables", 340 "-fno-unwind-tables", 341 ] 342 343 if (!use_libfuzzer) { 344 cflags += [ "-flto" ] 345 ldflags = [ 346 "-flto", 347 "-Wl,--gc-sections", 348 ] 349 } 350 cflags_cc = cflags 351 cflags_cc += [ "-fvisibility-inlines-hidden" ] 352 353 deps = [ 354 "../../frameworks/common:avsession_common", 355 "../../utils:avsession_utils", 356 ] 357 358 external_deps = [ 359 "ability_base:base", 360 "ability_base:want", 361 "ability_runtime:ability_manager", 362 "bundle_framework:appexecfwk_base", 363 "bundle_framework:appexecfwk_core", 364 "c_utils:utils", 365 "hilog:libhilog", 366 "ipc:ipc_single", 367 "samgr:samgr_proxy", 368 ] 369 370 subsystem_name = "multimedia" 371 part_name = "av_session" 372} 373 374ohos_shared_library("avsession_item") { 375 install_enable = true 376 sanitize = { 377 cfi = true 378 cfi_cross_dso = true 379 debug = false 380 } 381 ipc_sources = [ 382 "ipc/proxy/avcontroller_callback_proxy.cpp", 383 "ipc/proxy/avsession_callback_proxy.cpp", 384 "ipc/stub/avsession_controller_stub.cpp", 385 "ipc/stub/avsession_stub.cpp", 386 ] 387 388 service_sources = [ 389 "server/avcontroller_item.cpp", 390 "server/avsession_item.cpp", 391 "server/hw_cast_display_listener.cpp", 392 "server/remote/json_utils.cpp", 393 "server/remote/remote_session_command_process.cpp", 394 "server/remote/remote_session_sink_proxy.cpp", 395 "server/remote/remote_session_source_proxy.cpp", 396 ] 397 398 adapter_sources = [ 399 "adapter/bundle_status_adapter.cpp", 400 "adapter/collaboration_manager.cpp", 401 "adapter/command_send_limit.cpp", 402 "adapter/plugin_lib.cpp", 403 "adapter/session_xcollie.cpp", 404 ] 405 406 sources = ipc_sources + adapter_sources + service_sources 407 408 include_dirs = [ 409 "./../../frameworks/native/session/include", 410 "./../../interfaces/inner_api/native/session/include", 411 "./ipc/base", 412 "./ipc/proxy", 413 "./ipc/stub", 414 "./adapter", 415 "./server", 416 "./server/remote", 417 "//third_party/json/single_include", 418 "$commontype_dir/include", 419 ] 420 421 cflags = [ 422 "-fPIC", 423 "-fdata-sections", 424 "-ffunction-sections", 425 "-fno-asynchronous-unwind-tables", 426 "-fno-unwind-tables", 427 "-Os", 428 ] 429 430 if (multimedia_av_session_enable_background_audio_control) { 431 cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ] 432 } 433 434 if (!use_libfuzzer) { 435 cflags += [ "-flto" ] 436 ldflags = [ 437 "-flto", 438 "-Wl,--gc-sections", 439 ] 440 } 441 cflags_cc = cflags 442 cflags_cc += [ "-fvisibility-inlines-hidden" ] 443 444 defines = [] 445 if (target_cpu == "arm64" || is_emulator) { 446 system_lib_path = "\"/system/lib64/\"" 447 } else { 448 system_lib_path = "\"/system/lib/\"" 449 } 450 defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ] 451 452 deps = [ 453 "../../frameworks/common:avsession_common", 454 "../../utils:avsession_utils", 455 "//third_party/openssl:libcrypto_shared", 456 ] 457 458 external_deps = [ 459 "ability_base:base", 460 "ability_base:want", 461 "ability_runtime:app_manager", 462 "ability_runtime:wantagent_innerkits", 463 "access_token:libaccesstoken_sdk", 464 "access_token:libtokenid_sdk", 465 "access_token:libtokensetproc_shared", 466 "audio_framework:audio_client", 467 "background_task_mgr:bgtaskmgr_innerkits", 468 "bundle_framework:appexecfwk_base", 469 "bundle_framework:appexecfwk_core", 470 "c_utils:utils", 471 "data_object:distributeddataobject_impl", 472 "device_manager:devicemanagersdk", 473 "graphic_surface:surface", 474 "hilog:libhilog", 475 "input:libmmi-client", 476 "ipc:ipc_single", 477 "safwk:system_ability_fwk", 478 "samgr:samgr_proxy", 479 "window_manager:libdm_lite", 480 ] 481 482 if (castplus_cast_engine_enable) { 483 cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] 484 external_deps += [ "cast_engine:cast_engine_client" ] 485 deps += [ 486 "../../frameworks/native/session:avsession_cast_client", 487 "./../session:avsession_cast_item", 488 "./../session:avsession_router", 489 ] 490 } 491 492 if (bluetooth_part_enable) { 493 cflags += [ "-DBLUETOOTH_ENABLE" ] 494 external_deps += [ "bluetooth:btframework" ] 495 } 496 497 if (multimedia_av_session_enable_trace_control) { 498 cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] 499 external_deps += [ "hitrace:hitrace_meter" ] 500 } 501 if (multimedia_av_session_enable_sysevent_control) { 502 cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] 503 external_deps += [ "hisysevent:libhisysevent" ] 504 } 505 506 if (multimedia_av_session_enable_hicollie) { 507 external_deps += [ "hicollie:libhicollie" ] 508 defines += [ "HICOLLIE_ENABLE" ] 509 } 510 511 if (efficiency_manager_enable_in_avsession) { 512 cflags += [ "-DEFFICIENCY_MANAGER_ENABLE" ] 513 } 514 515 if (use_libfuzzer || use_clang_coverage) { 516 defines += [ "TEST_COVERAGE" ] 517 } 518 519 subsystem_name = "multimedia" 520 part_name = "av_session" 521} 522 523ohos_shared_library("avsession_cast_item") { 524 install_enable = true 525 sanitize = { 526 cfi = true 527 cfi_cross_dso = true 528 debug = false 529 } 530 ipc_sources = [ 531 "ipc/proxy/avcast_controller_callback_proxy.cpp", 532 "ipc/stub/avcast_controller_stub.cpp", 533 ] 534 535 service_sources = [ "server/avcast_controller_item.cpp" ] 536 537 adapter_sources = [ 538 "adapter/bundle_status_adapter.cpp", 539 "adapter/session_xcollie.cpp", 540 ] 541 542 sources = ipc_sources + adapter_sources + service_sources 543 544 include_dirs = [ 545 "./../../frameworks/native/session/include", 546 "./../../interfaces/inner_api/native/session/include", 547 "./ipc/base", 548 "./ipc/proxy", 549 "./ipc/stub", 550 "./adapter", 551 "./server", 552 "./server/remote", 553 "//third_party/json/single_include", 554 ] 555 556 cflags = [ 557 "-fPIC", 558 "-fdata-sections", 559 "-ffunction-sections", 560 "-fno-asynchronous-unwind-tables", 561 "-fno-unwind-tables", 562 "-Os", 563 ] 564 565 if (multimedia_av_session_enable_background_audio_control) { 566 cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ] 567 } 568 569 if (!use_libfuzzer) { 570 cflags += [ "-flto" ] 571 ldflags = [ 572 "-flto", 573 "-Wl,--gc-sections", 574 ] 575 } 576 cflags_cc = cflags 577 cflags_cc += [ "-fvisibility-inlines-hidden" ] 578 579 defines = [] 580 if (target_cpu == "arm64" || is_emulator) { 581 system_lib_path = "\"/system/lib64/\"" 582 } else { 583 system_lib_path = "\"/system/lib/\"" 584 } 585 defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ] 586 587 deps = [ 588 "../../frameworks/common:avsession_common", 589 "../../utils:avsession_utils", 590 "//third_party/openssl:libcrypto_shared", 591 ] 592 593 external_deps = [ 594 "ability_base:base", 595 "ability_base:want", 596 "ability_runtime:app_manager", 597 "ability_runtime:wantagent_innerkits", 598 "access_token:libaccesstoken_sdk", 599 "access_token:libtokenid_sdk", 600 "audio_framework:audio_client", 601 "bundle_framework:appexecfwk_base", 602 "bundle_framework:appexecfwk_core", 603 "c_utils:utils", 604 "data_object:distributeddataobject_impl", 605 "device_manager:devicemanagersdk", 606 "graphic_surface:surface", 607 "hilog:libhilog", 608 "input:libmmi-client", 609 "ipc:ipc_single", 610 "safwk:system_ability_fwk", 611 "samgr:samgr_proxy", 612 ] 613 614 if (castplus_cast_engine_enable) { 615 cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] 616 external_deps += [ "cast_engine:cast_engine_client" ] 617 deps += [ "./../session:avsession_router" ] 618 } 619 620 if (multimedia_av_session_enable_trace_control) { 621 cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] 622 external_deps += [ "hitrace:hitrace_meter" ] 623 } 624 if (multimedia_av_session_enable_sysevent_control) { 625 cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] 626 external_deps += [ "hisysevent:libhisysevent" ] 627 } 628 629 if (multimedia_av_session_enable_hicollie) { 630 external_deps += [ "hicollie:libhicollie" ] 631 defines += [ "HICOLLIE_ENABLE" ] 632 } 633 634 subsystem_name = "multimedia" 635 part_name = "av_session" 636} 637