# Copyright (c) 2022-2024 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("//build/ohos.gni") import("../../bluetooth_part.gni") import("../../castplus_cast_engine_part.gni") import("../../config.gni") import("../../efficiency_manager_part.gni") openssl_dir = "//third_party/openssl" group("avsession_server") { deps = [ ":avsession_dynamic_insight", ":avsession_item", ":avsession_service", "../../sa_profile:avsession_sa_profile", "../etc:avsession_service.rc", "../etc:ohos.para.dac", ] } ohos_shared_library("avsession_service") { stack_protector_ret = true install_enable = true sanitize = { cfi = true cfi_cross_dso = true debug = false } ipc_sources = [ "ipc/proxy/session_listener_proxy.cpp", "ipc/stub/avsession_callback_stub.cpp", "ipc/stub/avsession_service_stub.cpp", ] service_sources = [ "server/avsession_dumper.cpp", "server/avsession_service.cpp", "server/avsession_service_ext.cpp", "server/avsession_users_manager.cpp", "server/background_audio_controller.cpp", "server/focus_session_strategy.cpp", "server/migrate/migrate_avsession_manager.cpp", "server/migrate/migrate_avsession_server.cpp", "server/session_stack.cpp", "server/softbus/softbus_distributed_data_manager.cpp", "server/softbus/softbus_session.cpp", "server/softbus/softbus_session_manager.cpp", "server/softbus/softbus_session_server.cpp", ] adapter_sources = [ "adapter/ability_connect_helper.cpp", "adapter/ability_manager_adapter.cpp", "adapter/account_manager_adapter.cpp", "adapter/app_manager_adapter.cpp", "adapter/audio_adapter.cpp", "adapter/bundle_status_adapter.cpp", "adapter/collaboration_manager.cpp", "adapter/key_event_adapter.cpp", "adapter/params_config_operator.cpp", "adapter/session_xcollie.cpp", ] sources = ipc_sources + adapter_sources + service_sources include_dirs = [ "ipc/base", "ipc/proxy", "ipc/stub", "adapter", "server", "server/migrate", "server/softbus", "server/remote", "../../frameworks/native/session/include", "../../interfaces/inner_api/native/session/include", "//third_party/json/single_include", "$openssl_dir/include/", "$commontype_dir/include", ] cflags = [ "-fPIC", "-fdata-sections", "-ffunction-sections", "-fno-asynchronous-unwind-tables", "-fno-unwind-tables", "-Os", ] if (multimedia_av_session_enable_background_audio_control) { cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ] } if (!use_libfuzzer) { cflags += [ "-flto" ] ldflags = [ "-flto", "-Wl,--gc-sections", ] } cflags_cc = cflags cflags_cc += [ "-fvisibility-inlines-hidden" ] defines = [] if (target_cpu == "arm64" || is_emulator) { system_lib_path = "\"/system/lib64/\"" } else { system_lib_path = "\"/system/lib/\"" } defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ] deps = [ "$openssl_dir:libcrypto_shared", "./../../frameworks/common:avsession_common", "./../../frameworks/native/session:avsession_client", "./../../utils:avsession_utils", "./../session:avsession_item", "//third_party/jsoncpp:jsoncpp", "//third_party/openssl:libcrypto_shared", ] external_deps = [ "ability_base:base", "ability_base:want", "ability_base:zuri", "ability_runtime:app_manager", "ability_runtime:wantagent_innerkits", "access_token:libaccesstoken_sdk", "access_token:libtokenid_sdk", "access_token:libtokensetproc_shared", "audio_framework:audio_client", "background_task_mgr:bgtaskmgr_innerkits", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", "data_object:distributeddataobject_impl", "device_manager:devicemanagersdk", "distributed_notification_service:ans_innerkits", "dsoftbus:softbus_client", "graphic_surface:surface", "hilog:libhilog", "image_framework:image_native", "init:libbegetutil", "input:libmmi-client", "ipc:ipc_single", "os_account:os_account_innerkits", "relational_store:native_rdb", "safwk:system_ability_fwk", "samgr:samgr_proxy", "window_manager:libdm_lite", ] if (castplus_cast_engine_enable) { cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] external_deps += [ "cast_engine:cast_engine_client" ] deps += [ "../../frameworks/native/session:avsession_cast_client", "./../session:avsession_cast_item", "./../session:avsession_router", ] } if (bluetooth_part_enable) { cflags += [ "-DBLUETOOTH_ENABLE" ] external_deps += [ "bluetooth:btframework" ] } if (efficiency_manager_enable_in_avsession) { cflags += [ "-DEFFICIENCY_MANAGER_ENABLE" ] } if (multimedia_av_session_enable_trace_control) { cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] external_deps += [ "hitrace:hitrace_meter" ] } if (multimedia_av_session_enable_sysevent_control) { cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] external_deps += [ "hisysevent:libhisysevent" ] } if (multimedia_av_session_enable_hicollie) { external_deps += [ "hicollie:libhicollie" ] defines += [ "HICOLLIE_ENABLE" ] } if (use_libfuzzer || use_clang_coverage) { defines += [ "TEST_COVERAGE" ] } subsystem_name = "multimedia" part_name = "av_session" } if (castplus_cast_engine_enable) { ohos_shared_library("avsession_router") { install_enable = true sanitize = { cfi = true cfi_cross_dso = true debug = false } ipc_sources = [] service_sources = [ "server/avcast_provider_manager.cpp", "server/avrouter.cpp", "server/avrouter_impl.cpp", "server/hw_cast_provider.cpp", "server/hw_cast_provider_session.cpp", "server/hw_cast_stream_player.cpp", ] adapter_sources = [] sources = ipc_sources + adapter_sources + service_sources include_dirs = [ "./../../frameworks/native/session/include", "./../../interfaces/inner_api/native/session/include", "./adapter", "./server", "./ipc/stub", ] cflags = [ "-fPIC", "-fdata-sections", "-ffunction-sections", "-fno-asynchronous-unwind-tables", "-fno-unwind-tables", "-Os", ] if (multimedia_av_session_enable_background_audio_control) { cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ] } if (!use_libfuzzer) { cflags += [ "-flto" ] ldflags = [ "-flto", "-Wl,--gc-sections", ] } cflags_cc = cflags cflags_cc += [ "-fvisibility-inlines-hidden" ] defines = [] if (target_cpu == "arm64" || is_emulator) { system_lib_path = "\"/system/lib64/\"" } else { system_lib_path = "\"/system/lib/\"" } defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ] deps = [ "../../frameworks/common:avsession_common", "../../frameworks/native/session:avsession_client", "../../utils:avsession_utils", ] external_deps = [ "ability_base:base", "ability_base:want", "ability_runtime:app_manager", "ability_runtime:wantagent_innerkits", "access_token:libaccesstoken_sdk", "access_token:libtokenid_sdk", "audio_framework:audio_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", "data_object:distributeddataobject_impl", "device_manager:devicemanagersdk", "graphic_surface:surface", "hilog:libhilog", "image_framework:image_native", "input:libmmi-client", "ipc:ipc_single", "safwk:system_ability_fwk", "samgr:samgr_proxy", ] if (castplus_cast_engine_enable) { cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] external_deps += [ "cast_engine:cast_engine_client" ] service_sources += [ "" ] } if (multimedia_av_session_enable_trace_control) { cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] external_deps += [ "hitrace:hitrace_meter" ] } if (multimedia_av_session_enable_sysevent_control) { cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] external_deps += [ "hisysevent:libhisysevent" ] } subsystem_name = "multimedia" part_name = "av_session" } } ohos_shared_library("avsession_dynamic_insight") { install_enable = true sanitize = { cfi = true cfi_cross_dso = true debug = false } sources = [ "adapter/avsession_dynamic_insight.cpp" ] include_dirs = [ "./../../frameworks/native/session/include", "./../../interfaces/inner_api/native/session/include", "./adapter", "ipc/base", ] cflags = [ "-fPIC", "-fdata-sections", "-ffunction-sections", "-fno-asynchronous-unwind-tables", "-fno-unwind-tables", ] if (!use_libfuzzer) { cflags += [ "-flto" ] ldflags = [ "-flto", "-Wl,--gc-sections", ] } cflags_cc = cflags cflags_cc += [ "-fvisibility-inlines-hidden" ] deps = [ "../../frameworks/common:avsession_common", "../../utils:avsession_utils", ] external_deps = [ "ability_base:base", "ability_base:want", "ability_runtime:ability_manager", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", "hilog:libhilog", "ipc:ipc_single", "samgr:samgr_proxy", ] subsystem_name = "multimedia" part_name = "av_session" } ohos_shared_library("avsession_item") { install_enable = true sanitize = { cfi = true cfi_cross_dso = true debug = false } ipc_sources = [ "ipc/proxy/avcontroller_callback_proxy.cpp", "ipc/proxy/avsession_callback_proxy.cpp", "ipc/stub/avsession_controller_stub.cpp", "ipc/stub/avsession_stub.cpp", ] service_sources = [ "server/avcontroller_item.cpp", "server/avsession_item.cpp", "server/hw_cast_display_listener.cpp", "server/remote/json_utils.cpp", "server/remote/remote_session_command_process.cpp", "server/remote/remote_session_sink_proxy.cpp", "server/remote/remote_session_source_proxy.cpp", ] adapter_sources = [ "adapter/bundle_status_adapter.cpp", "adapter/collaboration_manager.cpp", "adapter/command_send_limit.cpp", "adapter/plugin_lib.cpp", "adapter/session_xcollie.cpp", ] sources = ipc_sources + adapter_sources + service_sources include_dirs = [ "./../../frameworks/native/session/include", "./../../interfaces/inner_api/native/session/include", "./ipc/base", "./ipc/proxy", "./ipc/stub", "./adapter", "./server", "./server/remote", "//third_party/json/single_include", "$commontype_dir/include", ] cflags = [ "-fPIC", "-fdata-sections", "-ffunction-sections", "-fno-asynchronous-unwind-tables", "-fno-unwind-tables", "-Os", ] if (multimedia_av_session_enable_background_audio_control) { cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ] } if (!use_libfuzzer) { cflags += [ "-flto" ] ldflags = [ "-flto", "-Wl,--gc-sections", ] } cflags_cc = cflags cflags_cc += [ "-fvisibility-inlines-hidden" ] defines = [] if (target_cpu == "arm64" || is_emulator) { system_lib_path = "\"/system/lib64/\"" } else { system_lib_path = "\"/system/lib/\"" } defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ] deps = [ "../../frameworks/common:avsession_common", "../../utils:avsession_utils", "//third_party/openssl:libcrypto_shared", ] external_deps = [ "ability_base:base", "ability_base:want", "ability_runtime:app_manager", "ability_runtime:wantagent_innerkits", "access_token:libaccesstoken_sdk", "access_token:libtokenid_sdk", "access_token:libtokensetproc_shared", "audio_framework:audio_client", "background_task_mgr:bgtaskmgr_innerkits", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", "data_object:distributeddataobject_impl", "device_manager:devicemanagersdk", "graphic_surface:surface", "hilog:libhilog", "input:libmmi-client", "ipc:ipc_single", "safwk:system_ability_fwk", "samgr:samgr_proxy", "window_manager:libdm_lite", ] if (castplus_cast_engine_enable) { cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] external_deps += [ "cast_engine:cast_engine_client" ] deps += [ "../../frameworks/native/session:avsession_cast_client", "./../session:avsession_cast_item", "./../session:avsession_router", ] } if (bluetooth_part_enable) { cflags += [ "-DBLUETOOTH_ENABLE" ] external_deps += [ "bluetooth:btframework" ] } if (multimedia_av_session_enable_trace_control) { cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] external_deps += [ "hitrace:hitrace_meter" ] } if (multimedia_av_session_enable_sysevent_control) { cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] external_deps += [ "hisysevent:libhisysevent" ] } if (multimedia_av_session_enable_hicollie) { external_deps += [ "hicollie:libhicollie" ] defines += [ "HICOLLIE_ENABLE" ] } if (efficiency_manager_enable_in_avsession) { cflags += [ "-DEFFICIENCY_MANAGER_ENABLE" ] } if (use_libfuzzer || use_clang_coverage) { defines += [ "TEST_COVERAGE" ] } subsystem_name = "multimedia" part_name = "av_session" } ohos_shared_library("avsession_cast_item") { install_enable = true sanitize = { cfi = true cfi_cross_dso = true debug = false } ipc_sources = [ "ipc/proxy/avcast_controller_callback_proxy.cpp", "ipc/stub/avcast_controller_stub.cpp", ] service_sources = [ "server/avcast_controller_item.cpp" ] adapter_sources = [ "adapter/bundle_status_adapter.cpp", "adapter/session_xcollie.cpp", ] sources = ipc_sources + adapter_sources + service_sources include_dirs = [ "./../../frameworks/native/session/include", "./../../interfaces/inner_api/native/session/include", "./ipc/base", "./ipc/proxy", "./ipc/stub", "./adapter", "./server", "./server/remote", "//third_party/json/single_include", ] cflags = [ "-fPIC", "-fdata-sections", "-ffunction-sections", "-fno-asynchronous-unwind-tables", "-fno-unwind-tables", "-Os", ] if (multimedia_av_session_enable_background_audio_control) { cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ] } if (!use_libfuzzer) { cflags += [ "-flto" ] ldflags = [ "-flto", "-Wl,--gc-sections", ] } cflags_cc = cflags cflags_cc += [ "-fvisibility-inlines-hidden" ] defines = [] if (target_cpu == "arm64" || is_emulator) { system_lib_path = "\"/system/lib64/\"" } else { system_lib_path = "\"/system/lib/\"" } defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ] deps = [ "../../frameworks/common:avsession_common", "../../utils:avsession_utils", "//third_party/openssl:libcrypto_shared", ] external_deps = [ "ability_base:base", "ability_base:want", "ability_runtime:app_manager", "ability_runtime:wantagent_innerkits", "access_token:libaccesstoken_sdk", "access_token:libtokenid_sdk", "audio_framework:audio_client", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", "data_object:distributeddataobject_impl", "device_manager:devicemanagersdk", "graphic_surface:surface", "hilog:libhilog", "input:libmmi-client", "ipc:ipc_single", "safwk:system_ability_fwk", "samgr:samgr_proxy", ] if (castplus_cast_engine_enable) { cflags += [ "-DCASTPLUS_CAST_ENGINE_ENABLE" ] external_deps += [ "cast_engine:cast_engine_client" ] deps += [ "./../session:avsession_router" ] } if (multimedia_av_session_enable_trace_control) { cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] external_deps += [ "hitrace:hitrace_meter" ] } if (multimedia_av_session_enable_sysevent_control) { cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] external_deps += [ "hisysevent:libhisysevent" ] } if (multimedia_av_session_enable_hicollie) { external_deps += [ "hicollie:libhicollie" ] defines += [ "HICOLLIE_ENABLE" ] } subsystem_name = "multimedia" part_name = "av_session" }