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 "../../frameworks/native/session:avsession_client", 455 "../../utils:avsession_utils", 456 "//third_party/openssl:libcrypto_shared", 457 ] 458 459 external_deps = [ 460 "ability_base:base", 461 "ability_base:want", 462 "ability_runtime:app_manager", 463 "ability_runtime:wantagent_innerkits", 464 "access_token:libaccesstoken_sdk", 465 "access_token:libtokenid_sdk", 466 "access_token:libtokensetproc_shared", 467 "audio_framework:audio_client", 468 "background_task_mgr:bgtaskmgr_innerkits", 469 "bundle_framework:appexecfwk_base", 470 "bundle_framework:appexecfwk_core", 471 "c_utils:utils", 472 "data_object:distributeddataobject_impl", 473 "device_manager:devicemanagersdk", 474 "graphic_surface:surface", 475 "hilog:libhilog", 476 "input:libmmi-client", 477 "ipc:ipc_single", 478 "safwk:system_ability_fwk", 479 "samgr:samgr_proxy", 480 "window_manager:libdm_lite", 481 ] 482 483 if (castplus_cast_engine_enable) { 484 cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] 485 external_deps += [ "cast_engine:cast_engine_client" ] 486 deps += [ 487 "../../frameworks/native/session:avsession_cast_client", 488 "./../session:avsession_cast_item", 489 "./../session:avsession_router", 490 ] 491 } 492 493 if (bluetooth_part_enable) { 494 cflags += [ "-DBLUETOOTH_ENABLE" ] 495 external_deps += [ "bluetooth:btframework" ] 496 } 497 498 if (multimedia_av_session_enable_trace_control) { 499 cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] 500 external_deps += [ "hitrace:hitrace_meter" ] 501 } 502 if (multimedia_av_session_enable_sysevent_control) { 503 cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] 504 external_deps += [ "hisysevent:libhisysevent" ] 505 } 506 507 if (multimedia_av_session_enable_hicollie) { 508 external_deps += [ "hicollie:libhicollie" ] 509 defines += [ "HICOLLIE_ENABLE" ] 510 } 511 512 if (efficiency_manager_enable_in_avsession) { 513 cflags += [ "-DEFFICIENCY_MANAGER_ENABLE" ] 514 } 515 516 if (use_libfuzzer || use_clang_coverage) { 517 defines += [ "TEST_COVERAGE" ] 518 } 519 520 subsystem_name = "multimedia" 521 part_name = "av_session" 522} 523 524ohos_shared_library("avsession_cast_item") { 525 install_enable = true 526 sanitize = { 527 cfi = true 528 cfi_cross_dso = true 529 debug = false 530 } 531 ipc_sources = [ 532 "ipc/proxy/avcast_controller_callback_proxy.cpp", 533 "ipc/stub/avcast_controller_stub.cpp", 534 ] 535 536 service_sources = [ "server/avcast_controller_item.cpp" ] 537 538 adapter_sources = [ 539 "adapter/bundle_status_adapter.cpp", 540 "adapter/session_xcollie.cpp", 541 ] 542 543 sources = ipc_sources + adapter_sources + service_sources 544 545 include_dirs = [ 546 "./../../frameworks/native/session/include", 547 "./../../interfaces/inner_api/native/session/include", 548 "./ipc/base", 549 "./ipc/proxy", 550 "./ipc/stub", 551 "./adapter", 552 "./server", 553 "./server/remote", 554 "//third_party/json/single_include", 555 ] 556 557 cflags = [ 558 "-fPIC", 559 "-fdata-sections", 560 "-ffunction-sections", 561 "-fno-asynchronous-unwind-tables", 562 "-fno-unwind-tables", 563 "-Os", 564 ] 565 566 if (multimedia_av_session_enable_background_audio_control) { 567 cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ] 568 } 569 570 if (!use_libfuzzer) { 571 cflags += [ "-flto" ] 572 ldflags = [ 573 "-flto", 574 "-Wl,--gc-sections", 575 ] 576 } 577 cflags_cc = cflags 578 cflags_cc += [ "-fvisibility-inlines-hidden" ] 579 580 defines = [] 581 if (target_cpu == "arm64" || is_emulator) { 582 system_lib_path = "\"/system/lib64/\"" 583 } else { 584 system_lib_path = "\"/system/lib/\"" 585 } 586 defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ] 587 588 deps = [ 589 "../../frameworks/common:avsession_common", 590 "../../utils:avsession_utils", 591 "//third_party/openssl:libcrypto_shared", 592 ] 593 594 external_deps = [ 595 "ability_base:base", 596 "ability_base:want", 597 "ability_runtime:app_manager", 598 "ability_runtime:wantagent_innerkits", 599 "access_token:libaccesstoken_sdk", 600 "access_token:libtokenid_sdk", 601 "audio_framework:audio_client", 602 "bundle_framework:appexecfwk_base", 603 "bundle_framework:appexecfwk_core", 604 "c_utils:utils", 605 "data_object:distributeddataobject_impl", 606 "device_manager:devicemanagersdk", 607 "graphic_surface:surface", 608 "hilog:libhilog", 609 "input:libmmi-client", 610 "ipc:ipc_single", 611 "safwk:system_ability_fwk", 612 "samgr:samgr_proxy", 613 ] 614 615 if (castplus_cast_engine_enable) { 616 cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] 617 external_deps += [ "cast_engine:cast_engine_client" ] 618 deps += [ "./../session:avsession_router" ] 619 } 620 621 if (multimedia_av_session_enable_trace_control) { 622 cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] 623 external_deps += [ "hitrace:hitrace_meter" ] 624 } 625 if (multimedia_av_session_enable_sysevent_control) { 626 cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] 627 external_deps += [ "hisysevent:libhisysevent" ] 628 } 629 630 if (multimedia_av_session_enable_hicollie) { 631 external_deps += [ "hicollie:libhicollie" ] 632 defines += [ "HICOLLIE_ENABLE" ] 633 } 634 635 subsystem_name = "multimedia" 636 part_name = "av_session" 637} 638