• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021 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/config/components/idl_tool/idl.gni")
16import("//build/ohos.gni")
17
18idl_gen_interface("input_control_channel_interface") {
19  src_idl = rebase_path(
20          "${inputmethod_path}/frameworks/native/inputmethod_ability/IInputControlChannel.idl")
21}
22
23idl_gen_interface("input_data_channel_interface") {
24  src_idl = rebase_path(
25          "${inputmethod_path}/frameworks/native/inputmethod_controller/IInputDataChannel.idl")
26}
27
28idl_gen_interface("input_method_core_interface") {
29  src_idl = rebase_path(
30          "${inputmethod_path}/frameworks/native/inputmethod_ability/IInputMethodCore.idl")
31}
32
33idl_gen_interface("input_method_extension_interface") {
34  src_idl = rebase_path(
35          "${inputmethod_path}/frameworks/native/inputmethod_ability/IInputMethodExtensionAbility.idl")
36}
37
38idl_gen_interface("system_cmd_channel_interface") {
39  src_idl = rebase_path(
40          "${inputmethod_path}/frameworks/native/inputmethod_controller/ISystemCmdChannel.idl")
41}
42
43idl_gen_interface("input_method_system_ability_interface") {
44  src_idl = rebase_path(
45          "${inputmethod_path}/frameworks/native/inputmethod_controller/IInputMethodSystemAbility.idl")
46  sources_common = [ "InputMethodClientTypes.idl" ]
47}
48
49idl_gen_interface("keyevent_consumer_interface") {
50  src_idl = rebase_path(
51          "${inputmethod_path}/frameworks/native/inputmethod_controller/IKeyEventConsumer.idl")
52}
53
54config("inputmethod_ability_native_config") {
55  visibility = [ ":*" ]
56  include_dirs = [
57    "include",
58    "${inputmethod_path}/frameworks/native/inputmethod_ability/include",
59    "${inputmethod_path}/frameworks/native/inputmethod_controller/include",
60    "${inputmethod_path}/frameworks/common",
61    "${inputmethod_path}/interfaces/inner_api/inputmethod_controller/include",
62    "${inputmethod_path}/services/include",
63    "${target_gen_dir}",
64  ]
65}
66config("inputmethod_ability_native_public_config") {
67  visibility = [
68    "${inputmethod_path}/common/*",
69    "${inputmethod_path}/frameworks/kits/extension/*",
70    "${inputmethod_path}/frameworks/ndk/*",
71    "${inputmethod_path}/test/fuzztest/*",
72    "${inputmethod_path}/test/unittest/*",
73    "../inputmethod_controller/*",
74    "./*",
75    "${inputmethod_path}/frameworks/kits/extension_cj/*",
76  ]
77  include_dirs = [
78    "include",
79    "${inputmethod_path}/common/include",
80    "${inputmethod_path}/frameworks/native/inputmethod_ability/include",
81    "${inputmethod_path}/frameworks/native/inputmethod_controller/include",
82    "${inputmethod_path}/frameworks/common",
83    "${inputmethod_path}/frameworks/services/json/include",
84    "${inputmethod_path}/interfaces/inner_api/inputmethod_controller/include",
85    "${inputmethod_path}/services/include",
86    "${target_gen_dir}",
87  ]
88}
89
90ohos_source_set("input_control_channel_proxy") {
91  sanitize = {
92    cfi = true
93    cfi_cross_dso = true
94    debug = false
95  }
96  public_configs = [ ":inputmethod_ability_native_config" ]
97  output_values = get_target_outputs(":input_control_channel_interface")
98  sources = filter_include(output_values, [ "*_proxy.cpp" ])
99  deps = [ ":input_control_channel_interface" ]
100  external_deps = [
101    "c_utils:utils",
102    "hilog:libhilog",
103    "ipc:ipc_single",
104    "samgr:samgr_proxy",
105  ]
106  subsystem_name = "inputmethod"
107  part_name = "imf"
108}
109
110ohos_source_set("input_control_channel_stub") {
111  sanitize = {
112    cfi = true
113    cfi_cross_dso = true
114    debug = false
115  }
116  public_configs = [ ":inputmethod_ability_native_config" ]
117  output_values = get_target_outputs(":input_control_channel_interface")
118  sources = filter_include(output_values, [ "*_stub.cpp" ])
119  deps = [ ":input_control_channel_interface" ]
120  external_deps = [
121    "c_utils:utils",
122    "hilog:libhilog",
123    "ipc:ipc_single",
124    "samgr:samgr_proxy",
125  ]
126  subsystem_name = "inputmethod"
127  part_name = "imf"
128}
129
130ohos_source_set("input_data_channel_stub") {
131  sanitize = {
132    cfi = true
133    cfi_cross_dso = true
134    debug = false
135  }
136  public_configs = [ ":inputmethod_ability_native_public_config" ]
137  output_values = get_target_outputs(":input_data_channel_interface")
138  sources = filter_include(output_values, [ "*_stub.cpp" ])
139  deps = [ ":input_data_channel_interface" ]
140  external_deps = [
141    "c_utils:utils",
142    "hilog:libhilog",
143    "input:libmmi-client",
144    "ipc:ipc_single",
145    "samgr:samgr_proxy",
146  ]
147  subsystem_name = "inputmethod"
148  part_name = "imf"
149}
150
151ohos_source_set("input_method_core_stub") {
152  sanitize = {
153    cfi = true
154    cfi_cross_dso = true
155    debug = false
156  }
157  public_configs = [ ":inputmethod_ability_native_public_config" ]
158  configs = [ "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:inputmethod_client_native_public_config" ]
159  output_values = get_target_outputs(":input_method_core_interface")
160  sources = filter_include(output_values, [ "*_stub.cpp" ])
161  deps = [ ":input_method_core_interface" ]
162  external_deps = [
163    "c_utils:utils",
164    "hilog:libhilog",
165    "input:libmmi-client",
166    "ipc:ipc_single",
167    "samgr:samgr_proxy",
168  ]
169  subsystem_name = "inputmethod"
170  part_name = "imf"
171}
172
173ohos_source_set("input_method_core_proxy") {
174  sanitize = {
175    cfi = true
176    cfi_cross_dso = true
177    debug = false
178  }
179  public_configs = [ ":inputmethod_ability_native_public_config" ]
180  configs = [ "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:inputmethod_client_native_public_config" ]
181  output_values = get_target_outputs(":input_method_core_interface")
182  sources = filter_include(output_values, [ "*_proxy.cpp" ])
183  deps = [ ":input_method_core_interface" ]
184  external_deps = [
185    "c_utils:utils",
186    "hilog:libhilog",
187    "input:libmmi-client",
188    "ipc:ipc_single",
189    "samgr:samgr_proxy",
190  ]
191  subsystem_name = "inputmethod"
192  part_name = "imf"
193}
194
195ohos_source_set("system_cmd_channel_stub") {
196  sanitize = {
197    cfi = true
198    cfi_cross_dso = true
199    debug = false
200  }
201  public_configs = [ ":inputmethod_ability_native_public_config" ]
202  output_values = get_target_outputs(":system_cmd_channel_interface")
203  sources = filter_include(output_values, [ "*_stub.cpp" ])
204  deps = [ ":system_cmd_channel_interface" ]
205  external_deps = [
206    "c_utils:utils",
207    "hilog:libhilog",
208    "input:libmmi-client",
209    "ipc:ipc_single",
210    "samgr:samgr_proxy",
211  ]
212  subsystem_name = "inputmethod"
213  part_name = "imf"
214}
215
216ohos_source_set("input_method_extension_stub") {
217  sanitize = {
218    cfi = true
219    cfi_cross_dso = true
220    debug = false
221  }
222  public_configs = [ ":inputmethod_ability_native_public_config" ]
223  output_values = get_target_outputs(":input_method_extension_interface")
224  sources = filter_include(output_values, [ "*_stub.cpp" ])
225  deps = [ ":input_method_extension_interface" ]
226  external_deps = [
227    "c_utils:utils",
228    "hilog:libhilog",
229    "ipc:ipc_single",
230    "samgr:samgr_proxy",
231  ]
232  subsystem_name = "inputmethod"
233  part_name = "imf"
234}
235
236ohos_source_set("input_method_system_ability_proxy") {
237  sanitize = {
238    cfi = true
239    cfi_cross_dso = true
240    debug = false
241  }
242  public_configs = [
243    ":inputmethod_ability_native_public_config",
244    "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:inputmethod_client_native_public_config",
245  ]
246  output_values = get_target_outputs(":input_method_system_ability_interface")
247  sources = filter_include(output_values, [ "*_proxy.cpp" ])
248  deps = [ ":input_method_system_ability_interface" ]
249  external_deps = [
250    "ability_base:want",
251    "c_utils:utils",
252    "hilog:libhilog",
253    "input:libmmi-client",
254    "ipc:ipc_single",
255    "samgr:samgr_proxy",
256  ]
257  subsystem_name = "inputmethod"
258  part_name = "imf"
259}
260
261ohos_source_set("input_method_system_ability_stub") {
262  sanitize = {
263    cfi = true
264    cfi_cross_dso = true
265    debug = false
266  }
267  public_configs = [
268    ":inputmethod_ability_native_public_config",
269    "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:inputmethod_client_native_public_config",
270  ]
271  output_values = get_target_outputs(":input_method_system_ability_interface")
272  sources = filter_include(output_values, [ "*_stub.cpp" ])
273  deps = [ ":input_method_system_ability_interface" ]
274  external_deps = [
275    "ability_base:want",
276    "c_utils:utils",
277    "hilog:libhilog",
278    "input:libmmi-client",
279    "ipc:ipc_single",
280    "samgr:samgr_proxy",
281  ]
282  subsystem_name = "inputmethod"
283  part_name = "imf"
284}
285
286ohos_source_set("input_method_client_types") {
287  sanitize = {
288    cfi = true
289    cfi_cross_dso = true
290    debug = false
291  }
292  public_configs = [
293    ":inputmethod_ability_native_public_config",
294    "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:inputmethod_client_native_public_config",
295  ]
296  output_values = get_target_outputs(":input_method_system_ability_interface")
297  sources = filter_include(output_values, [ "*input_method_client_types.cpp" ])
298  deps = [ ":input_method_system_ability_interface" ]
299  external_deps = [
300    "hilog:libhilog",
301    "ipc:ipc_single",
302  ]
303  subsystem_name = "inputmethod"
304  part_name = "imf"
305}
306
307ohos_source_set("keyevent_consumer_stub") {
308  sanitize = {
309    cfi = true
310    cfi_cross_dso = true
311    debug = false
312  }
313  public_configs = [ ":inputmethod_ability_native_public_config" ]
314  output_values = get_target_outputs(":keyevent_consumer_interface")
315  sources = filter_include(output_values, [ "*_stub.cpp" ])
316  deps = [ ":keyevent_consumer_interface" ]
317  external_deps = [
318    "c_utils:utils",
319    "hilog:libhilog",
320    "ipc:ipc_single",
321    "samgr:samgr_proxy",
322  ]
323  subsystem_name = "inputmethod"
324  part_name = "imf"
325}
326
327ohos_shared_library("inputmethod_ability") {
328  branch_protector_ret = "pac_ret"
329  sanitize = {
330    boundary_sanitize = true
331    cfi = true
332    cfi_cross_dso = true
333    debug = false
334    integer_overflow = true
335    ubsan = true
336  }
337  sources = [
338    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/ime_mirror_manager.cpp",
339    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_data_channel_proxy_wrap.cpp",
340    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability.cpp",
341    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability_interface.cpp",
342    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability_utils.cpp",
343    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_agent_service_impl.cpp",
344    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_core_service_impl.cpp",
345    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_panel.cpp",
346    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/task_manager.cpp",
347    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/tasks/task.cpp",
348    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/window_change_listener_impl.cpp",
349    "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_client_info.cpp",
350    "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_tools.cpp",
351    "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_utils.cpp",
352    "${inputmethod_path}/services/src/sys_cfg_parser.cpp",
353  ]
354  cflags_cc = [
355    "-fdata-sections",
356    "-ffunction-sections",
357    "-Os",
358    "-Wno-c99-designator",
359  ]
360  version_script = "inputmethod_ability.versionscript"
361
362  configs = [ ":inputmethod_ability_native_config" ]
363
364  external_deps = [
365    "ability_base:configuration",
366    "ability_base:want",
367    "ability_runtime:ability_context_native",
368    "ability_runtime:runtime",
369    "bundle_framework:appexecfwk_base",
370    "cJSON:cjson",
371    "c_utils:utils",
372    "config_policy:configpolicy_util",
373    "eventhandler:libeventhandler",
374    "graphic_2d:librender_service_base",
375    "graphic_2d:librender_service_client",
376    "graphic_2d:window_animation",
377    "hilog:libhilog",
378    "input:libmmi-client",
379    "ipc:ipc_single",
380    "napi:ace_napi",
381    "safwk:system_ability_fwk",
382    "samgr:samgr_proxy",
383    "window_manager:libdm",
384    "window_manager:libwsutils",
385  ]
386
387  public_external_deps = [ "window_manager:libwm" ]
388
389  deps = [
390    ":input_control_channel_interface",
391    ":input_data_channel_interface",
392    ":input_method_core_interface",
393    ":input_method_extension_interface",
394    ":input_method_system_ability_interface",
395    ":keyevent_consumer_interface",
396    ":system_cmd_channel_interface",
397    "${inputmethod_path}/common:inputmethod_common",
398    "${inputmethod_path}/common/imf_hisysevent:imf_hisysevent",
399    "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:input_method_client_types",
400    "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:input_method_agent_stub",
401    "${inputmethod_path}/services/file:imf_file_static",
402    "${inputmethod_path}/services/json:imf_json_static",
403  ]
404
405  input_control_channel_output_values =
406      get_target_outputs(":input_control_channel_interface")
407  sources += filter_include(input_control_channel_output_values,
408                            [
409                              "*_proxy.cpp",
410                              "*_stub.cpp",
411                            ])
412
413  data_channel_output_values =
414      get_target_outputs(":input_data_channel_interface")
415  sources += filter_include(data_channel_output_values,
416                            [
417                              "*_proxy.cpp",
418                              "*_stub.cpp",
419                            ])
420
421  core_output_values = get_target_outputs(":input_method_core_interface")
422  sources += filter_include(core_output_values,
423                            [
424                              "*_proxy.cpp",
425                              "*_stub.cpp",
426                            ])
427
428  system_cmd_channel_output_values =
429      get_target_outputs(":system_cmd_channel_interface")
430  sources += filter_include(system_cmd_channel_output_values,
431                            [
432                              "*_proxy.cpp",
433                              "*_stub.cpp",
434                            ])
435
436  input_method_system_ability_output_values =
437      get_target_outputs(":input_method_system_ability_interface")
438  sources += filter_include(input_method_system_ability_output_values,
439                            [
440                              "*_proxy.cpp",
441                              "*_stub.cpp",
442                            ])
443
444  input_method_extension_output_values =
445      get_target_outputs(":input_method_extension_interface")
446  sources += filter_include(input_method_extension_output_values,
447                            [
448                              "*_proxy.cpp",
449                              "*_stub.cpp",
450                            ])
451
452  keyevent_consumer_output_values =
453      get_target_outputs(":keyevent_consumer_interface")
454  sources += filter_include(keyevent_consumer_output_values,
455                            [
456                              "*_proxy.cpp",
457                              "*_stub.cpp",
458                            ])
459
460  public_configs = [ ":inputmethod_ability_native_public_config" ]
461
462  subsystem_name = "inputmethod"
463  innerapi_tags = [ "platformsdk" ]
464  part_name = "imf"
465}
466
467ohos_static_library("inputmethod_ability_static") {
468  branch_protector_ret = "pac_ret"
469  sanitize = {
470    cfi = true
471    cfi_cross_dso = true
472    debug = false
473  }
474  sources = [
475    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/ime_mirror_manager.cpp",
476    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_data_channel_proxy_wrap.cpp",
477    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability.cpp",
478    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability_interface.cpp",
479    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability_utils.cpp",
480    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_agent_service_impl.cpp",
481    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_core_service_impl.cpp",
482    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_panel.cpp",
483    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/task_manager.cpp",
484    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/tasks/task.cpp",
485    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/window_change_listener_impl.cpp",
486    "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_client_info.cpp",
487    "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_tools.cpp",
488    "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_utils.cpp",
489    "${inputmethod_path}/services/src/sys_cfg_parser.cpp",
490  ]
491
492  external_deps = [
493    "ability_base:configuration",
494    "ability_base:want",
495    "ability_runtime:ability_context_native",
496    "ability_runtime:app_manager",
497    "ability_runtime:runtime",
498    "bundle_framework:appexecfwk_base",
499    "cJSON:cjson",
500    "c_utils:utils",
501    "config_policy:configpolicy_util",
502    "eventhandler:libeventhandler",
503    "graphic_2d:librender_service_client",
504    "graphic_2d:window_animation",
505    "hilog:libhilog",
506    "input:libmmi-client",
507    "ipc:ipc_single",
508    "napi:ace_napi",
509    "safwk:system_ability_fwk",
510    "samgr:samgr_proxy",
511    "window_manager:libdm",
512    "window_manager:libwsutils",
513  ]
514
515  public_external_deps = [ "window_manager:libwm" ]
516
517  deps = [
518    ":input_control_channel_interface",
519    ":input_data_channel_interface",
520    ":input_method_core_interface",
521    ":input_method_system_ability_interface",
522    ":keyevent_consumer_interface",
523    ":system_cmd_channel_interface",
524    "${inputmethod_path}/common:inputmethod_common",
525    "${inputmethod_path}/common/imf_hisysevent:imf_hisysevent",
526    "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:input_method_agent_proxy",
527    "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:input_method_agent_stub",
528    "${inputmethod_path}/services/file:imf_file_static",
529    "${inputmethod_path}/services/json:imf_json_static",
530  ]
531
532  input_control_channel_output_values =
533      get_target_outputs(":input_control_channel_interface")
534  sources += filter_include(input_control_channel_output_values,
535                            [
536                              "*_proxy.cpp",
537                              "*_stub.cpp",
538                            ])
539
540  data_channel_output_values =
541      get_target_outputs(":input_data_channel_interface")
542  sources += filter_include(data_channel_output_values,
543                            [
544                              "*_proxy.cpp",
545                              "*_stub.cpp",
546                            ])
547
548  core_output_values = get_target_outputs(":input_method_core_interface")
549  sources += filter_include(core_output_values,
550                            [
551                              "*_proxy.cpp",
552                              "*_stub.cpp",
553                            ])
554
555  system_cmd_channel_output_values =
556      get_target_outputs(":system_cmd_channel_interface")
557  sources += filter_include(system_cmd_channel_output_values,
558                            [
559                              "*_proxy.cpp",
560                              "*_stub.cpp",
561                            ])
562
563  input_method_system_ability_output_values =
564      get_target_outputs(":input_method_system_ability_interface")
565  sources += filter_include(input_method_system_ability_output_values,
566                            [
567                              "*_proxy.cpp",
568                              "*_stub.cpp",
569                            ])
570
571  keyevent_consumer_output_values =
572      get_target_outputs(":keyevent_consumer_interface")
573  sources += filter_include(keyevent_consumer_output_values,
574                            [
575                              "*_proxy.cpp",
576                              "*_stub.cpp",
577                            ])
578
579  public_configs = [ ":inputmethod_ability_native_public_config" ]
580
581  subsystem_name = "inputmethod"
582  part_name = "imf"
583}
584
585ohos_static_library("inputmethod_ability_fuzz_static") {
586  branch_protector_ret = "pac_ret"
587
588  sources = [
589    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/ime_mirror_manager.cpp",
590    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability.cpp",
591    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability_interface.cpp",
592    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability_utils.cpp",
593    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_agent_service_impl.cpp",
594    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_core_service_impl.cpp",
595    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_panel.cpp",
596    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/task_manager.cpp",
597    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/tasks/task.cpp",
598    "${inputmethod_path}/frameworks/native/inputmethod_ability/src/window_change_listener_impl.cpp",
599    "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_client_info.cpp",
600    "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_tools.cpp",
601    "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_utils.cpp",
602    "${inputmethod_path}/services/src/sys_cfg_parser.cpp",
603  ]
604
605  external_deps = [
606    "ability_base:configuration",
607    "ability_base:want",
608    "ability_runtime:ability_context_native",
609    "ability_runtime:app_manager",
610    "bundle_framework:appexecfwk_base",
611    "c_utils:utils",
612    "config_policy:configpolicy_util",
613    "eventhandler:libeventhandler",
614    "graphic_2d:librender_service_base",
615    "graphic_2d:librender_service_client",
616    "graphic_2d:window_animation",
617    "hilog:libhilog",
618    "input:libmmi-client",
619    "ipc:ipc_single",
620    "napi:ace_napi",
621    "safwk:system_ability_fwk",
622    "samgr:samgr_proxy",
623    "window_manager:libdm",
624    "window_manager:libwsutils",
625  ]
626
627  public_external_deps = [ "window_manager:libwm" ]
628
629  deps = [
630    ":input_control_channel_interface",
631    ":input_data_channel_interface",
632    ":input_method_core_interface",
633    ":input_method_system_ability_interface",
634    ":keyevent_consumer_interface",
635    ":system_cmd_channel_interface",
636    "${inputmethod_path}/common:inputmethod_common",
637    "${inputmethod_path}/common/imf_hisysevent:imf_hisysevent",
638    "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:input_method_agent_proxy",
639    "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:input_method_agent_stub",
640    "${inputmethod_path}/services/file:imf_file_static",
641    "${inputmethod_path}/services/json:imf_json_static",
642  ]
643
644  input_control_channel_output_values =
645      get_target_outputs(":input_control_channel_interface")
646  sources += filter_include(input_control_channel_output_values,
647                            [
648                              "*_proxy.cpp",
649                              "*_stub.cpp",
650                            ])
651
652  data_channel_output_values =
653      get_target_outputs(":input_data_channel_interface")
654  sources += filter_include(data_channel_output_values,
655                            [
656                              "*_proxy.cpp",
657                              "*_stub.cpp",
658                            ])
659
660  core_output_values = get_target_outputs(":input_method_core_interface")
661  sources += filter_include(core_output_values,
662                            [
663                              "*_proxy.cpp",
664                              "*_stub.cpp",
665                            ])
666
667  system_cmd_channel_output_values =
668      get_target_outputs(":system_cmd_channel_interface")
669  sources += filter_include(system_cmd_channel_output_values,
670                            [
671                              "*_proxy.cpp",
672                              "*_stub.cpp",
673                            ])
674
675  input_method_system_ability_output_values =
676      get_target_outputs(":input_method_system_ability_interface")
677  sources += filter_include(input_method_system_ability_output_values,
678                            [
679                              "*_proxy.cpp",
680                              "*_stub.cpp",
681                            ])
682
683  keyevent_consumer_output_values =
684      get_target_outputs(":keyevent_consumer_interface")
685  sources += filter_include(keyevent_consumer_output_values,
686                            [
687                              "*_proxy.cpp",
688                              "*_stub.cpp",
689                            ])
690
691  public_configs = [ ":inputmethod_ability_native_public_config" ]
692
693  subsystem_name = "inputmethod"
694  part_name = "imf"
695}
696