1# Copyright (c) 2022-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")
15
16config("iam_log_config") {
17  include_dirs = [ "logs" ]
18}
19
20config("iam_thread_pool_config") {
21  include_dirs = [ "thread_pool" ]
22}
23
24ohos_source_set("iam_thread_pool") {
25  sanitize = {
26    integer_overflow = true
27    ubsan = true
28    boundary_sanitize = true
29    cfi = true
30    cfi_cross_dso = true
31    debug = false
32    blocklist = "../cfi_blocklist.txt"
33  }
34  branch_protector_ret = "pac_ret"
35  include_dirs = [
36    "thread_pool",
37    "logs",
38  ]
39
40  sources = [ "thread_pool/thread_groups.cpp" ]
41
42  external_deps = [
43    "c_utils:utils",
44    "hilog:libhilog",
45  ]
46
47  public_configs = [ ":iam_thread_pool_config" ]
48
49  subsystem_name = "useriam"
50  part_name = "user_auth_framework"
51}
52
53config("iam_utils_config") {
54  include_dirs = [ "utils" ]
55}
56
57ohos_source_set("iam_utils") {
58  sanitize = {
59    integer_overflow = true
60    ubsan = true
61    boundary_sanitize = true
62    cfi = true
63    cfi_cross_dso = true
64    debug = false
65    blocklist = "../cfi_blocklist.txt"
66  }
67  branch_protector_ret = "pac_ret"
68  include_dirs = [
69    "utils",
70    "logs",
71  ]
72
73  sources = [
74    "utils/iam_mem.cpp",
75    "utils/iam_time.cpp",
76    "utils/xcollie_helper.cpp",
77  ]
78
79  external_deps = [
80    "c_utils:utils",
81    "hicollie:libhicollie",
82    "hilog:libhilog",
83  ]
84
85  public_configs = [
86    ":iam_utils_config",
87    ":iam_log_config",
88  ]
89
90  subsystem_name = "useriam"
91  part_name = "user_auth_framework"
92}
93
94config("iam_test_config") {
95  include_dirs = [ "test" ]
96}
97
98ohos_source_set("iam_test") {
99  testonly = true
100  include_dirs = [ "logs" ]
101
102  external_deps = [
103    "c_utils:utils",
104    "hicollie:libhicollie",
105    "hilog:libhilog",
106  ]
107
108  public_configs = [ ":iam_test_config" ]
109
110  sources = [ "test/iam_fuzz_test.cpp" ]
111
112  subsystem_name = "useriam"
113  part_name = "user_auth_framework"
114}
115