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