1c29fa5a6Sopenharmony_ci# Copyright (c) 2021-2022 Huawei Device Co., Ltd.
2c29fa5a6Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3c29fa5a6Sopenharmony_ci# you may not use this file except in compliance with the License.
4c29fa5a6Sopenharmony_ci# You may obtain a copy of the License at
5c29fa5a6Sopenharmony_ci#
6c29fa5a6Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7c29fa5a6Sopenharmony_ci#
8c29fa5a6Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9c29fa5a6Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10c29fa5a6Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11c29fa5a6Sopenharmony_ci# See the License for the specific language governing permissions and
12c29fa5a6Sopenharmony_ci# limitations under the License.
13c29fa5a6Sopenharmony_ci
14c29fa5a6Sopenharmony_ciimport("//build/ohos.gni")
15c29fa5a6Sopenharmony_ciimport("//foundation/multimodalinput/input/multimodalinput_mini.gni")
16c29fa5a6Sopenharmony_ci
17c29fa5a6Sopenharmony_cidefines = input_default_defines
18c29fa5a6Sopenharmony_ci
19c29fa5a6Sopenharmony_ciconfig("mmi_libudev_public_config") {
20c29fa5a6Sopenharmony_ci  include_dirs = [ "include" ]
21c29fa5a6Sopenharmony_ci}
22c29fa5a6Sopenharmony_ci
23c29fa5a6Sopenharmony_ciconfig("mmi_libudev_config") {
24c29fa5a6Sopenharmony_ci  include_dirs = [ "${mmi_path}/util/common/include" ]
25c29fa5a6Sopenharmony_ci}
26c29fa5a6Sopenharmony_ci
27c29fa5a6Sopenharmony_ciohos_static_library("mmi_libudev") {
28c29fa5a6Sopenharmony_ci  public_configs = [ ":mmi_libudev_public_config" ]
29c29fa5a6Sopenharmony_ci  configs = [ ":mmi_libudev_config" ]
30c29fa5a6Sopenharmony_ci
31c29fa5a6Sopenharmony_ci  sources = [ "src/udev_device.cpp" ]
32c29fa5a6Sopenharmony_ci  branch_protector_ret = "pac_ret"
33c29fa5a6Sopenharmony_ci  sanitize = {
34c29fa5a6Sopenharmony_ci    cfi = true
35c29fa5a6Sopenharmony_ci    cfi_cross_dso = true
36c29fa5a6Sopenharmony_ci    debug = false
37c29fa5a6Sopenharmony_ci  }
38c29fa5a6Sopenharmony_ci  external_deps = [ "hilog:libhilog" ]
39c29fa5a6Sopenharmony_ci
40c29fa5a6Sopenharmony_ci  defines += [ "MMI_DISABLE_LOG_TRACE" ]
41c29fa5a6Sopenharmony_ci  part_name = "input"
42c29fa5a6Sopenharmony_ci  subsystem_name = "multimodalinput"
43c29fa5a6Sopenharmony_ci}
44c29fa5a6Sopenharmony_ci
45c29fa5a6Sopenharmony_ciimport("//build/test.gni")
46c29fa5a6Sopenharmony_cioutput_path = "multimodalinput/mmi_unit_out"
47c29fa5a6Sopenharmony_ci
48c29fa5a6Sopenharmony_cigroup("test") {
49c29fa5a6Sopenharmony_ci  testonly = true
50c29fa5a6Sopenharmony_ci  deps = [
51c29fa5a6Sopenharmony_ci    ":e2e-libudev-test",
52c29fa5a6Sopenharmony_ci    ":libudev-test",
53c29fa5a6Sopenharmony_ci  ]
54c29fa5a6Sopenharmony_ci}
55c29fa5a6Sopenharmony_ci
56c29fa5a6Sopenharmony_ciohos_unittest("libudev-test") {
57c29fa5a6Sopenharmony_ci  module_out_path = output_path
58c29fa5a6Sopenharmony_ci  include_dirs = [
59c29fa5a6Sopenharmony_ci    "${mmi_path}/util/common/include",
60c29fa5a6Sopenharmony_ci    "//third_party/libevdev",
61c29fa5a6Sopenharmony_ci  ]
62c29fa5a6Sopenharmony_ci
63c29fa5a6Sopenharmony_ci  configs = [
64c29fa5a6Sopenharmony_ci    ":mmi_libudev_config",
65c29fa5a6Sopenharmony_ci    ":mmi_libudev_public_config",
66c29fa5a6Sopenharmony_ci  ]
67c29fa5a6Sopenharmony_ci
68c29fa5a6Sopenharmony_ci  sources = [
69c29fa5a6Sopenharmony_ci    "src/udev_device.cpp",
70c29fa5a6Sopenharmony_ci    "test/custom_udev_test.cpp",
71c29fa5a6Sopenharmony_ci  ]
72c29fa5a6Sopenharmony_ci
73c29fa5a6Sopenharmony_ci  external_deps = [
74c29fa5a6Sopenharmony_ci    "googletest:gmock_main",
75c29fa5a6Sopenharmony_ci    "hilog:libhilog",
76c29fa5a6Sopenharmony_ci    "libevdev:libevdev",
77c29fa5a6Sopenharmony_ci  ]
78c29fa5a6Sopenharmony_ci
79c29fa5a6Sopenharmony_ci  defines += [ "MMI_DISABLE_LOG_TRACE" ]
80c29fa5a6Sopenharmony_ci}
81c29fa5a6Sopenharmony_ci
82c29fa5a6Sopenharmony_ciohos_unittest("e2e-libudev-test") {
83c29fa5a6Sopenharmony_ci  module_out_path = output_path
84c29fa5a6Sopenharmony_ci  include_dirs = [ "//third_party/libevdev" ]
85c29fa5a6Sopenharmony_ci
86c29fa5a6Sopenharmony_ci  sources = [ "test/e2e_udev_test.cpp" ]
87c29fa5a6Sopenharmony_ci
88c29fa5a6Sopenharmony_ci  deps = [ "${mmi_path}/frameworks/proxy:libmmi-client" ]
89c29fa5a6Sopenharmony_ci
90c29fa5a6Sopenharmony_ci  external_deps = [
91c29fa5a6Sopenharmony_ci    "c_utils:utilsbase",
92c29fa5a6Sopenharmony_ci    "eventhandler:libeventhandler",
93c29fa5a6Sopenharmony_ci    "googletest:gmock_main",
94c29fa5a6Sopenharmony_ci    "hilog:libhilog_base",
95c29fa5a6Sopenharmony_ci    "ipc:ipc_core",
96c29fa5a6Sopenharmony_ci    "libevdev:libevdev",
97c29fa5a6Sopenharmony_ci  ]
98c29fa5a6Sopenharmony_ci}
99