• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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