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_time.cpp",
75    "utils/xcollie_helper.cpp",
76  ]
77
78  external_deps = [
79    "c_utils:utils",
80    "hicollie:libhicollie",
81    "hilog:libhilog",
82  ]
83
84  public_configs = [
85    ":iam_utils_config",
86    ":iam_log_config",
87  ]
88
89  subsystem_name = "useriam"
90  part_name = "user_auth_framework"
91}
92
93config("iam_test_config") {
94  include_dirs = [ "test" ]
95}
96
97ohos_source_set("iam_test") {
98  testonly = true
99  include_dirs = [ "logs" ]
100
101  external_deps = [
102    "c_utils:utils",
103    "hicollie:libhicollie",
104    "hilog:libhilog",
105  ]
106
107  public_configs = [ ":iam_test_config" ]
108
109  sources = [ "test/iam_fuzz_test.cpp" ]
110
111  subsystem_name = "useriam"
112  part_name = "user_auth_framework"
113}
114