1# Copyright (c) 2022 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("//foundation/multimedia/av_session/config.gni") 16 17group("avession_server") { 18 deps = [ 19 ":avsession_service", 20 "//foundation/multimedia/av_session/sa_profile:avsession_sa_profile", 21 "//foundation/multimedia/av_session/services/etc:avsession_service.rc", 22 ] 23} 24 25ohos_shared_library("avsession_service") { 26 install_enable = true 27 sanitize = { 28 cfi = true 29 debug = false 30 } 31 ipc_sources = [ 32 "ipc/proxy/avcontroller_callback_proxy.cpp", 33 "ipc/proxy/avsession_callback_proxy.cpp", 34 "ipc/proxy/session_listener_proxy.cpp", 35 "ipc/stub/avsession_callback_stub.cpp", 36 "ipc/stub/avsession_controller_stub.cpp", 37 "ipc/stub/avsession_service_stub.cpp", 38 "ipc/stub/avsession_stub.cpp", 39 ] 40 41 service_sources = [ 42 "server/avcontroller_item.cpp", 43 "server/avsession_dumper.cpp", 44 "server/avsession_item.cpp", 45 "server/avsession_service.cpp", 46 "server/background_audio_controller.cpp", 47 "server/focus_session_strategy.cpp", 48 "server/remote/json_utils.cpp", 49 "server/remote/remote_session_command_process.cpp", 50 "server/remote/remote_session_sink_proxy.cpp", 51 "server/remote/remote_session_source_proxy.cpp", 52 "server/session_stack.cpp", 53 ] 54 55 adapter_sources = [ 56 "adapter/ability_connect_helper.cpp", 57 "adapter/ability_manager_adapter.cpp", 58 "adapter/app_manager_adapter.cpp", 59 "adapter/audio_adapter.cpp", 60 "adapter/command_send_limit.cpp", 61 "adapter/key_event_adapter.cpp", 62 "adapter/permission_checker.cpp", 63 ] 64 65 sources = ipc_sources + adapter_sources + service_sources 66 67 include_dirs = [ 68 "//foundation/multimedia/av_session/frameworks/native/session/include", 69 "//foundation/multimedia/av_session/interfaces/inner_api/native/session/include", 70 "//foundation/multimedia/av_session/services/session/ipc/base", 71 "//foundation/multimedia/av_session/services/session/ipc/proxy", 72 "//foundation/multimedia/av_session/services/session/ipc/stub", 73 "//foundation/multimedia/av_session/services/session/adapter", 74 "//foundation/multimedia/av_session/services/session/server", 75 "//foundation/multimedia/av_session/services/session/server/remote", 76 "//third_party/json/single_include", 77 ] 78 79 cflags = [ 80 "-fPIC", 81 "-fdata-sections", 82 "-ffunction-sections", 83 "-fno-asynchronous-unwind-tables", 84 "-fno-unwind-tables", 85 "-Os", 86 ] 87 88 if (multimedia_av_session_enable_background_audio_control) { 89 cflags += [ "-DENABLE_BACKGROUND_AUDIO_CONTROL" ] 90 } 91 92 if (!use_libfuzzer) { 93 cflags += [ "-flto" ] 94 ldflags = [ 95 "-flto", 96 "-Wl,--gc-sections", 97 ] 98 } 99 cflags_cc = cflags 100 cflags_cc += [ "-fvisibility-inlines-hidden" ] 101 102 defines = [] 103 if (target_cpu == "arm64") { 104 system_lib_path = "\"/system/lib64/\"" 105 } else { 106 system_lib_path = "\"/system/lib/\"" 107 } 108 defines += [ "SYSTEM_LIB_PATH = ${system_lib_path}" ] 109 110 deps = [ 111 "//foundation/multimedia/av_session/frameworks/common:avsession_common", 112 "//foundation/multimedia/av_session/utils:avsession_utils", 113 ] 114 115 external_deps = [ 116 "ability_base:want", 117 "ability_runtime:app_manager", 118 "ability_runtime:wantagent_innerkits", 119 "access_token:libaccesstoken_sdk", 120 "bundle_framework:appexecfwk_core", 121 "c_utils:utils", 122 "data_object:distributeddataobject_impl", 123 "device_manager:devicemanagersdk", 124 "hiviewdfx_hilog_native:libhilog", 125 "input:libmmi-client", 126 "ipc:ipc_core", 127 "multimedia_audio_framework:audio_client", 128 "safwk:system_ability_fwk", 129 "samgr:samgr_proxy", 130 ] 131 132 if (multimedia_av_session_enable_trace_control) { 133 cflags += [ "-DENBABLE_AVSESSION_TRACE_CONTROL" ] 134 external_deps += [ "hitrace_native:hitrace_meter" ] 135 } 136 if (multimedia_av_session_enable_sysevent_control) { 137 cflags += [ "-DENABLE_AVSESSION_SYSEVENT_CONTROL" ] 138 external_deps += [ "hisysevent_native:libhisysevent" ] 139 } 140 141 subsystem_name = "multimedia" 142 part_name = "multimedia_av_session" 143} 144