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("../../../config.gni")
16
17config("audio_config") {
18  include_dirs = [
19    "../audiocapturer/include",
20    "../audiorenderer/include",
21    "../../../interfaces/inner_api/native/audiocapturer/include",
22    "../../../interfaces/inner_api/native/audiocommon/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
35if (!audio_framework_feature_opensl_es) {
36  group("opensles") {
37    deps = []
38  }
39} else {
40  ohos_shared_library("opensles") {
41    sanitize = {
42      cfi = true
43      cfi_cross_dso = true
44      cfi_vcall_icall_only = true
45      debug = false
46    }
47    include_dirs = [
48      "include",
49      "../../../interfaces/inner_api/native/andiocapturer/include/",
50      "../../../interfaces/inner_api/native/andiomanager/include/",
51      "../../../interfaces/inner_api/native/andiorenderer/include/",
52    ]
53
54    configs = [ ":audio_config" ]
55
56    sources = [
57      "src/adapter/audiocapturer_adapter.cpp",
58      "src/adapter/audioplayer_adapter.cpp",
59      "src/adapter/readorwritecallback_adapter.cpp",
60      "src/itf/engine_itf.cpp",
61      "src/itf/object_itf.cpp",
62      "src/itf/openharmony_buffer_queue_itf.cpp",
63      "src/itf/play_itf.cpp",
64      "src/itf/record_itf.cpp",
65      "src/itf/volume_itf.cpp",
66      "src/obj/audiocapturer_obj.cpp",
67      "src/obj/audioplayer_obj.cpp",
68      "src/obj/engine_obj.cpp",
69      "src/obj/output_mix_obj.cpp",
70      "src/util/builder.cpp",
71      "src/util/table_struct.cpp",
72    ]
73
74    cflags = [ "-Werror" ]
75
76    deps = [
77      "../../../services/audio_service:audio_client",
78      "../audiocapturer:audio_capturer",
79      "../audiorenderer:audio_renderer",
80    ]
81
82    external_deps = [
83      "hilog:libhilog",
84      "ipc:ipc_single",
85      "opensles:libSLES",
86    ]
87
88    output_name = "OpenSLES"
89    output_extension = "so"
90    subsystem_name = "multimedia"
91    part_name = "audio_framework"
92  }
93}
94
95group("audio_opensles_test_packages") {
96  deps = [
97    ":audio_opensles_player_test",
98    ":audio_opensles_recorder_test",
99  ]
100}
101
102config("audio_operation_config") {
103  include_dirs = [
104    "../audiocapturer/include",
105    "../audiorenderer/include",
106    "../../../interfaces/inner_api/native/audiocapturer/include",
107    "../../../interfaces/inner_api/native/audiocommon/include",
108    "../../../interfaces/inner_api/native/audiomanager/include",
109    "../../../interfaces/inner_api/native/audiorenderer/include",
110    "../../../interfaces/inner_api/native/audiostream/include",
111    "../../../services/audio_service/client/include",
112    "../../../services/audio_service/test/example",
113  ]
114
115  cflags = [
116    "-Wall",
117    "-Werror",
118  ]
119}
120
121config("audio_opensles_config") {
122  include_dirs = [ "include" ]
123}
124
125if (!audio_framework_feature_opensl_es) {
126  group("audio_opensles_player_test") {
127    deps = []
128  }
129} else {
130  ohos_executable("audio_opensles_player_test") {
131    install_enable = false
132
133    sources = [ "test/example/audio_opensles_player_test.cpp" ]
134
135    configs = [
136      ":audio_opensles_config",
137      ":audio_operation_config",
138    ]
139
140    deps = [ ":opensles" ]
141
142    external_deps = [
143      "hilog:libhilog",
144      "opensles:libSLES",
145      "pulseaudio:pulse",
146    ]
147
148    part_name = "audio_framework"
149    subsystem_name = "multimedia"
150  }
151}
152
153if (!audio_framework_feature_opensl_es) {
154  group("audio_opensles_recorder_test") {
155    deps = []
156  }
157} else {
158  ohos_executable("audio_opensles_recorder_test") {
159    install_enable = false
160
161    sources = [ "test/example/audio_opensles_recorder_test.cpp" ]
162
163    configs = [
164      ":audio_opensles_config",
165      ":audio_operation_config",
166    ]
167
168    deps = [ ":opensles" ]
169
170    external_deps = [
171      "bounds_checking_function:libsec_shared",
172      "hilog:libhilog",
173      "opensles:libSLES",
174      "pulseaudio:pulse",
175    ]
176
177    part_name = "audio_framework"
178    subsystem_name = "multimedia"
179  }
180}
181