1# Copyright (c) 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("../../../config.gni")
16
17config("audio_config") {
18  include_dirs = [
19    "../audiocapturer/include",
20    "../audiorenderer/include",
21    "../../../interfaces/inner_api/native/audiocommon/include",
22    "../../../interfaces/inner_api/native/audiocapturer/include",
23    "../../../interfaces/inner_api/native/audiomanager/include",
24    "../../../interfaces/inner_api/native/audiorenderer/include",
25    "../../../interfaces/inner_api/native/audiostream/include",
26    "../../../services/audio_service/client/include",
27  ]
28
29  cflags = [
30    "-Wall",
31    "-Werror",
32  ]
33}
34
35ohos_shared_library("ohaudio") {
36  sanitize = {
37    cfi = true
38    cfi_cross_dso = true
39    cfi_vcall_icall_only = true
40    debug = false
41  }
42  include_dirs = [
43    "../../../interfaces/kits/c/",
44    "../../../interfaces/kits/c/common/",
45    "../../../interfaces/kits/c/audio_renderer/",
46    "../../../interfaces/kits/c/audio_capturer/",
47    "../../../interfaces/kits/c/audio_manager/",
48    "../../native/audiopolicy/include/",
49  ]
50
51  configs = [ ":audio_config" ]
52
53  sources = [
54    "./OHAudioCapturer.cpp",
55    "./OHAudioDeviceDescriptor.cpp",
56    "./OHAudioManager.cpp",
57    "./OHAudioRenderer.cpp",
58    "./OHAudioRoutingManager.cpp",
59    "./OHAudioSessionManager.cpp",
60    "./OHAudioStreamBuilder.cpp",
61  ]
62
63  deps = [
64    "../../../services/audio_service:audio_client",
65    "../audiocapturer:audio_capturer",
66    "../audiorenderer:audio_renderer",
67  ]
68  cflags = [ "-Werror" ]
69
70  external_deps = [
71    "c_utils:utils",
72    "hilog:libhilog",
73    "init:libbegetutil",
74  ]
75
76  innerapi_tags = [ "ndk" ]
77
78  output_name = "ohaudio"
79  output_extension = "so"
80  subsystem_name = "multimedia"
81  part_name = "audio_framework"
82}
83
84group("oh_audio_renderer_test_packages") {
85  deps = [
86    ":oh_audio_capturer_test",
87    ":oh_audio_renderer_test",
88    ":oh_audio_session_manager_test",
89  ]
90}
91
92ohos_executable("oh_audio_capturer_test") {
93  install_enable = false
94
95  include_dirs = [
96    "../../../interfaces/kits/c/",
97    "../../../interfaces/kits/c/common/",
98    "../../../interfaces/kits/c/audio_renderer/",
99    "../../../interfaces/kits/c/audio_capturer/",
100  ]
101
102  sources = [ "test/example/oh_audio_capturer_test.cpp" ]
103
104  configs = [ ":audio_config" ]
105
106  deps = [ ":ohaudio" ]
107
108  external_deps = [ "hilog:libhilog" ]
109
110  part_name = "audio_framework"
111  subsystem_name = "multimedia"
112}
113
114ohos_executable("oh_audio_capturer_lowlatency_test") {
115  install_enable = false
116
117  include_dirs = [
118    "../../../interfaces/kits/c/",
119    "../../../interfaces/kits/c/common/",
120    "../../../interfaces/kits/c/audio_renderer/",
121    "../../../interfaces/kits/c/audio_capturer/",
122    "../audioutils/include",
123    "../../../interfaces/inner_api/native/audiocommon/include",
124    "../../../interfaces/inner_api/native/audiomanager/include",
125    "../../../services/audio_service/client/include",
126  ]
127
128  sources = [ "test/example/oh_audio_capturer_lowlatency_test.cpp" ]
129
130  configs = [ ":audio_config" ]
131
132  deps = [
133    ":ohaudio",
134    "../../../services/audio_service:audio_client",
135    "../audioutils:audio_utils",
136  ]
137
138  external_deps = [
139    "bounds_checking_function:libsec_shared",
140    "c_utils:utils",
141    "hilog:libhilog",
142    "init:libbegetutil",
143  ]
144
145  part_name = "audio_framework"
146  subsystem_name = "multimedia"
147}
148
149ohos_executable("oh_audio_renderer_test") {
150  install_enable = false
151
152  include_dirs = [
153    "../../../interfaces/kits/c/",
154    "../../../interfaces/kits/c/common/",
155    "../../../interfaces/kits/c/audio_renderer/",
156    "../../../interfaces/kits/c/audio_capturer/",
157  ]
158
159  sources = [ "test/example/oh_audio_renderer_test.cpp" ]
160
161  configs = [ ":audio_config" ]
162
163  deps = [ ":ohaudio" ]
164
165  external_deps = [ "hilog:libhilog" ]
166
167  part_name = "audio_framework"
168  subsystem_name = "multimedia"
169}
170
171ohos_executable("oh_audio_session_manager_test") {
172  stack_protector_ret = true
173
174  sanitize = {
175    cfi = true
176    cfi_cross_dso = true
177    cfi_vcall_icall_only = true
178    debug = false
179  }
180
181  install_enable = false
182
183  include_dirs = [
184    "../../../interfaces/kits/c/",
185    "../../../interfaces/kits/c/audio_manager/",
186    "../../../interfaces/kits/c/common/",
187    "../../../interfaces/kits/c/audio_renderer/",
188  ]
189
190  sources = [ "test/example/oh_audio_session_manager_test.cpp" ]
191
192  configs = [ ":audio_config" ]
193
194  deps = [
195    ":ohaudio",
196    "../../../services/audio_service:audio_client",
197    "../audioutils:audio_utils",
198  ]
199
200  external_deps = [
201    "bounds_checking_function:libsec_shared",
202    "c_utils:utils",
203    "hilog:libhilog",
204    "init:libbegetutil",
205  ]
206
207  part_name = "audio_framework"
208  subsystem_name = "multimedia"
209}
210