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