1# Copyright (c) 2022-2025 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("//base/inputmethod/imf/inputmethod.gni") 15import("//build/ohos.gni") 16 17config("ability_config") { 18 visibility = [ ":*" ] 19 20 cflags = [] 21 if (target_cpu == "arm") { 22 cflags += [ "-DBINDER_IPC_32BIT" ] 23 } 24 defines = [ 25 "APP_LOG_TAG = \"Ability\"", 26 "LOG_DOMAIN = 0xD002200", 27 ] 28} 29 30config("ability_public_config") { 31 visibility = [ ":*" ] 32 include_dirs = [ "${inputmethod_path}/frameworks/kits/extension/include" ] 33} 34 35ohos_shared_library("inputmethod_extension") { 36 branch_protector_ret = "pac_ret" 37 sanitize = { 38 boundary_sanitize = true 39 cfi = true 40 cfi_cross_dso = true 41 debug = false 42 integer_overflow = true 43 ubsan = true 44 } 45 cflags_cc = [ 46 "-fdata-sections", 47 "-ffunction-sections", 48 "-Os", 49 ] 50 include_dirs = [ 51 "${inputmethod_path}/frameworks/js/napi/common", 52 "${inputmethod_path}/frameworks/js/napi/inputmethodclient", 53 "${inputmethod_path}/frameworks/kits/extension/include", 54 "${inputmethod_path}/frameworks/native/inputmethod_controller/include", 55 "${inputmethod_path}/interfaces/inner_api/inputmethod_controller/include", 56 "${inputmethod_path}/common/include", 57 "${inputmethod_path}/frameworks/kits/extension_cj/include", 58 ] 59 60 sources = [ 61 "${inputmethod_path}/frameworks/js/napi/inputmethodclient/js_utils.cpp", 62 "${inputmethod_path}/frameworks/kits/extension/src/inputmethod_extension.cpp", 63 "${inputmethod_path}/frameworks/kits/extension/src/inputmethod_extension_context.cpp", 64 "${inputmethod_path}/frameworks/kits/extension/src/js_inputmethod_extension.cpp", 65 "${inputmethod_path}/frameworks/kits/extension/src/js_inputmethod_extension_context.cpp", 66 "${inputmethod_path}/frameworks/kits/extension_cj/src/cj_inputmethod_extension_loader.cpp" 67 ] 68 configs = [ ":ability_config" ] 69 public_configs = [ 70 ":ability_public_config", 71 "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:inputmethod_ability_native_public_config", 72 ] 73 74 deps = [ 75 "${inputmethod_path}/common:inputmethod_common", 76 "${inputmethod_path}/frameworks/js/napi/common:inputmethod_js_common", 77 "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:input_control_channel_proxy", 78 "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:input_method_extension_stub", 79 "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:inputmethod_ability", 80 ] 81 82 external_deps = [ 83 "ability_base:configuration", 84 "ability_base:want", 85 "ability_runtime:ability_context_native", 86 "ability_runtime:ability_manager", 87 "ability_runtime:ability_start_options", 88 "ability_runtime:abilitykit_native", 89 "ability_runtime:abilitykit_utils", 90 "ability_runtime:app_context", 91 "ability_runtime:extensionkit_native", 92 "ability_runtime:napi_common", 93 "ability_runtime:runtime", 94 "c_utils:utils", 95 "eventhandler:libeventhandler", 96 "hilog:libhilog", 97 "i18n:intl_util", 98 "input:libmmi-client", 99 "ipc:ipc_napi", 100 "ipc:ipc_single", 101 "napi:ace_napi", 102 "window_manager:libdm", 103 ] 104 105 subsystem_name = "inputmethod" 106 part_name = "imf" 107} 108 109ohos_shared_library("inputmethod_extension_module") { 110 branch_protector_ret = "pac_ret" 111 sanitize = { 112 boundary_sanitize = true 113 cfi = true 114 cfi_cross_dso = true 115 debug = false 116 integer_overflow = true 117 ubsan = true 118 } 119 include_dirs = [ "${inputmethod_path}/common/include" ] 120 121 sources = [ "${inputmethod_path}/frameworks/kits/extension/src/inputmethod_extension_module_loader.cpp" ] 122 123 configs = [ ":ability_config" ] 124 public_configs = [ ":ability_public_config" ] 125 126 deps = [ ":inputmethod_extension" ] 127 128 external_deps = [ 129 "ability_base:base", 130 "ability_base:want", 131 "ability_base:zuri", 132 "ability_runtime:abilitykit_native", 133 "ability_runtime:runtime", 134 "c_utils:utils", 135 "hilog:libhilog", 136 "ipc:ipc_napi", 137 "ipc:ipc_single", 138 "napi:ace_napi", 139 ] 140 141 relative_install_dir = "extensionability/" 142 subsystem_name = "inputmethod" 143 part_name = "imf" 144} 145