• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2022-2024 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("../../user_auth_framework.gni")
16
17if (!defined(global_parts_info) ||
18    defined(global_parts_info.account_os_account)) {
19  has_os_account_part = true
20} else {
21  has_os_account_part = false
22}
23
24if (!defined(global_parts_info) ||
25    defined(global_parts_info.notification_common_event_service)) {
26  has_notification_common_event_service = true
27} else {
28  has_notification_common_event_service = false
29}
30
31config("userauth_service_core_config") {
32  include_dirs = [
33    "inc",
34    "src",
35    "../context/inc",
36    "../ipc/inc",
37  ]
38}
39
40ohos_source_set("userauth_service_core") {
41  sanitize = {
42    integer_overflow = true
43    ubsan = true
44    boundary_sanitize = true
45    cfi = true
46    cfi_cross_dso = true
47    debug = false
48    blocklist = "../../cfi_blocklist.txt"
49  }
50  branch_protector_ret = "pac_ret"
51  include_dirs = [
52    "inc",
53    "src",
54  ]
55
56  remove_configs = [ "//build/config/compiler:no_exceptions" ]
57
58  sources = [
59    "src/authentication_impl.cpp",
60    "src/credential_info_impl.cpp",
61    "src/delete_impl.cpp",
62    "src/driver_state_manager.cpp",
63    "src/enrolled_info_impl.cpp",
64    "src/enrollment_impl.cpp",
65    "src/event_listener_manager.cpp",
66    "src/identification_impl.cpp",
67    "src/ipc_common.cpp",
68    "src/remote_executor_proxy.cpp",
69    "src/remote_msg_util.cpp",
70    "src/resource_node_impl.cpp",
71    "src/resource_node_pool_impl.cpp",
72    "src/resource_node_utils.cpp",
73    "src/risk_event_manager.cpp",
74    "src/schedule_node_builder.cpp",
75    "src/schedule_node_helper.cpp",
76    "src/schedule_node_impl.cpp",
77    "src/schedule_resource_node_listener.cpp",
78    "src/screenlock_status_listener.cpp",
79    "src/secure_user_info_impl.cpp",
80    "src/system_param_manager.cpp",
81    "src/update_pin_param_impl.cpp",
82    "src/user_idm_database_impl.cpp",
83    "src/user_info_impl.cpp",
84    "src/widget_schedule_node_impl.cpp",
85  ]
86
87  deps = [
88    "../../frameworks/native/client:userauth_client",
89    "../../frameworks/native/common:attributes",
90    "../../frameworks/native/common:dfx",
91    "../../services/base:userauth_service_base",
92  ]
93
94  external_deps = [
95    "ability_runtime:app_manager",
96    "access_token:libaccesstoken_sdk",
97    "access_token:libtokenid_sdk",
98    "c_utils:utils",
99    "device_manager:devicemanagersdk",
100    "drivers_interface_user_auth:libuser_auth_proxy_4.0",
101    "hdf_core:libhdf_utils",
102    "hdf_core:libhdi",
103    "hilog:libhilog",
104    "hitrace:hitrace_meter",
105    "init:libbegetutil",
106    "ipc:ipc_core",
107    "safwk:system_ability_fwk",
108    "samgr:samgr_proxy",
109  ]
110
111  defines = []
112  if (screenlock_client_enable) {
113    external_deps += [
114      "eventhandler:libeventhandler",
115      "ffrt:libffrt",
116      "preferences:native_preferences",
117      "screenlock_mgr:screenlock_client",
118      "window_manager:libdm_lite",
119    ]
120    sources += [
121      "src/strong_auth_status_manager_impl.cpp",
122    ]
123  } else {
124    sources += [
125      "src/strong_auth_status_manager_mock.cpp",
126    ]
127  }
128
129  if (has_os_account_part) {
130    cflags_cc = [ "-DHAS_OS_ACCOUNT_PART" ]
131    external_deps += [ "os_account:os_account_innerkits" ]
132    sources += [
133      "src/os_accounts_manager_impl.cpp",
134    ]
135  } else {
136    sources += [
137      "src/os_accounts_manager_mock.cpp",
138    ]
139  }
140
141  if (has_notification_common_event_service) {
142    sources += [ "src/publish_event_adapter.cpp" ]
143    external_deps += [ "common_event_service:cesfwk_innerkits" ]
144  } else {
145    sources += [ "src/publish_event_adapter_mock.cpp" ]
146  }
147
148  public_configs = [ ":userauth_service_core_config" ]
149
150  configs = [
151    "../../common:iam_log_config",
152    "../../common:iam_utils_config",
153    "../../frameworks/native/ipc:userauth_client_ipc_config",
154    "../remote_connect:userauth_service_remote_connect_config",
155    "../load_mode:userauth_service_load_mode_config",
156  ]
157
158  subsystem_name = "useriam"
159  part_name = "user_auth_framework"
160}
161