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