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