• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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("../../intell_voice_service.gni")
16
17ohos_source_set("engine_source") {
18  configs = [ "//build/config/compiler:exceptions" ]
19  if (intelligent_voice_framework_engine_enable) {
20    sources = [
21      "server/base/adapter_callback_service.cpp",
22      "server/base/audio_debug.cpp",
23      "server/base/audio_source.cpp",
24      "server/base/data_operation_callback.cpp",
25      "server/base/engine_base.cpp",
26      "server/base/engine_factory.cpp",
27      "server/base/engine_util.cpp",
28      "server/base/file_source.cpp",
29      "server/base/intell_voice_engine_callback_proxy.cpp",
30      "server/base/intell_voice_engine_stub.cpp",
31      "server/base/intell_voice_sensibility.cpp",
32      "server/base/intell_voice_update_callback_proxy.cpp",
33      "server/base/swing_service_wrapper.cpp",
34      "server/enroll/enroll_adapter_listener.cpp",
35      "server/enroll/enroll_engine.cpp",
36      "server/hdi_adapter/adapter_host_manager.cpp",
37      "server/hdi_adapter/engine_host_manager.cpp",
38      "server/hdi_adapter/headset_adapter_host_manager.cpp",
39      "server/hdi_adapter/headset_host_manager.cpp",
40      "server/manager/engine_callback_message.cpp",
41      "server/manager/intell_voice_engine_arbitration.cpp",
42      "server/manager/intell_voice_engine_manager.cpp",
43      "server/update/controller/strategy/clone_update_strategy.cpp",
44      "server/update/controller/strategy/silence_update_strategy.cpp",
45      "server/update/controller/strategy/whisper_update_strategy.cpp",
46      "server/update/controller/update_engine_controller.cpp",
47      "server/update/update_adapter_listener.cpp",
48      "server/update/update_engine.cpp",
49      "server/update/update_engine_utils.cpp",
50      "server/wakeup/headset/headset_wakeup_engine_impl.cpp",
51      "server/wakeup/headset/headset_wakeup_wrapper.cpp",
52      "server/wakeup/wakeup_adapter_listener.cpp",
53      "server/wakeup/wakeup_engine.cpp",
54      "server/wakeup/wakeup_engine_impl.cpp",
55      "server/wakeup/wakeup_source_process.cpp",
56      "server/wakeup/wakeup_source_stop_callback.cpp",
57    ]
58
59    if (intelligent_voice_framework_only_second_stage) {
60      sources += [
61        "server/wakeup/high_power/high_power_adapter_listener.cpp",
62        "server/wakeup/high_power/high_power_wakeup_engine.cpp",
63      ]
64    }
65
66    include_dirs = [
67      "inc",
68      "../../../../ai/intelligent_voice_framework/utils",
69      "../../../../ai/intelligent_voice_framework/interfaces/inner_api/native",
70      "../intell_voice_service/inc",
71      "intell_voice_engine",
72      "server/base",
73      "server/enroll",
74      "server/hdi_adapter",
75      "server/update",
76      "server/update/controller",
77      "server/update/controller/strategy",
78      "server/utils",
79      "server/wakeup",
80      "server/wakeup/headset",
81      "server/wakeup/high_power",
82    ]
83
84    external_deps = [
85      "ability_runtime:ability_manager",
86      "audio_framework:audio_capturer",
87      "audio_framework:audio_client",
88      "audio_framework:audio_foundation",
89      "c_utils:utils",
90      "drivers_interface_intelligent_voice:libintell_voice_engine_proxy_1.0",
91      "drivers_interface_intelligent_voice:libintell_voice_engine_proxy_1.1",
92      "drivers_interface_intelligent_voice:libintell_voice_engine_proxy_1.2",
93      "eventhandler:libeventhandler",
94      "ffrt:libffrt",
95      "hdf_core:libhdi",
96      "hilog:libhilog",
97      "huks:libhukssdk",
98      "image_framework:image_native",
99      "ipc:ipc_core",
100      "jsoncpp:jsoncpp",
101      "kv_store:distributeddata_inner",
102      "safwk:system_ability_fwk",
103      "samgr:samgr_proxy",
104    ]
105  } else if (intelligent_voice_framework_first_stage_oneshot_enable) {
106      sources = [
107      "server/base/audio_debug.cpp",
108      "server/base/audio_source.cpp",
109      "server/base/engine_base.cpp",
110      "server/base/file_source.cpp",
111      "server/base/intell_voice_engine_stub.cpp",
112      "server/manager/engine_callback_message.cpp",
113      "server/manager/only_first_engine_manager.cpp",
114      "server/wakeup/only_first/only_first_wakeup_engine.cpp",
115      "server/wakeup/only_first/only_first_wakeup_engine_impl.cpp",
116      "server/wakeup/wakeup_source_process.cpp",
117      "server/wakeup/wakeup_source_stop_callback.cpp",
118    ]
119
120    include_dirs = [
121      "inc",
122      "../../../../ai/intelligent_voice_framework/utils",
123      "../../../../ai/intelligent_voice_framework/interfaces/inner_api/native",
124      "../intell_voice_service/inc",
125      "intell_voice_engine",
126      "server/base",
127      "server/utils",
128      "server/wakeup",
129      "server/wakeup/only_first",
130    ]
131
132    external_deps = [
133      "audio_framework:audio_capturer",
134      "audio_framework:audio_client",
135      "audio_framework:audio_foundation",
136      "c_utils:utils",
137      "eventhandler:libeventhandler",
138      "ffrt:libffrt",
139      "hilog:libhilog",
140      "image_framework:image_native",
141      "ipc:ipc_core",
142    ]
143  } else {
144    sources = [
145      "server/manager/dummy_engine_manager.cpp",
146      "server/manager/engine_callback_message.cpp",
147    ]
148    include_dirs = [
149      "inc",
150      "../intell_voice_service/inc",
151      "../../../../ai/intelligent_voice_framework/utils",
152    ]
153    external_deps = []
154  }
155
156  cflags_cc = [
157    "-Wno-error=unused-parameter",
158    "-DHILOG_ENABLE",
159    "-DENABLE_DEBUG",
160    "-DUSE_FFRT",
161  ]
162
163  if (intelligent_voice_framework_only_second_stage) {
164    cflags_cc += [ "-DONLY_SECOND_STAGE" ]
165  }
166
167  if (intelligent_voice_framework_only_first_stage) {
168    cflags_cc += [ "-DONLY_FIRST_STAGE" ]
169    if (intelligent_voice_framework_first_stage_oneshot_enable) {
170      cflags_cc += [ "-DFIRST_STAGE_ONESHOT_ENABLE" ]
171    }
172  }
173
174  defines = []
175  if (build_variant == "root") {
176    defines += [ "INTELL_VOICE_BUILD_VARIANT_ROOT" ]
177  }
178
179  deps = [ "../../utils:intell_voice_utils" ]
180
181  sanitize = {
182    cfi = true
183    cfi_cross_dso = true
184    cfi_vcall_icall_only = true
185    debug = false
186  }
187
188  branch_protector_ret = "pac_ret"
189  subsystem_name = "ai"
190  part_name = "intelligent_voice_framework"
191}
192
193ohos_shared_library("intelligentvoice_engine") {
194  deps = [ ":engine_source" ]
195  external_deps = [ "hilog:libhilog" ]
196  if (intelligent_voice_framework_engine_enable) {
197    version_script = "libintelligentvoice_engine.versionscript"
198  } else if (intelligent_voice_framework_first_stage_oneshot_enable) {
199    version_script = "libintelligentvoice_only_first_engine.versionscript"
200  } else {
201    version_script = "libintelligentvoice_dummy_engine.versionscript"
202  }
203  sanitize = {
204    cfi = true
205    cfi_cross_dso = true
206    cfi_vcall_icall_only = true
207    debug = false
208  }
209  branch_protector_ret = "pac_ret"
210  subsystem_name = "ai"
211  part_name = "intelligent_voice_framework"
212}
213
214ohos_shared_library("intelligentvoice_engine_test") {
215  deps = [ ":engine_source" ]
216  external_deps = [ "hilog:libhilog" ]
217  sanitize = {
218    cfi = true
219    cfi_cross_dso = true
220    cfi_vcall_icall_only = true
221    debug = false
222  }
223  branch_protector_ret = "pac_ret"
224  subsystem_name = "ai"
225  part_name = "intelligent_voice_framework"
226}
227