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("//base/security/huks/build/config.gni")
15import("//base/security/huks/huks.gni")
16import("//build/ohos.gni")
17
18config("huks_config") {
19  include_dirs = [ "./" ]
20}
21
22if (os_level == "standard") {
23  ohos_static_library("libhuks_utils_mutex_static") {
24    branch_protector_ret = "pac_ret"
25
26    sanitize = {
27      integer_overflow = true
28      cfi = true
29      debug = false
30      cfi_cross_dso = true
31      boundary_sanitize = true
32      ubsan = true
33    }
34    subsystem_name = "security"
35    part_name = "huks"
36    public_configs = [ ":huks_config" ]
37    configs = [
38      "//base/security/huks/frameworks/config/build:l2_standard_common_config",
39    ]
40    include_dirs = [
41      "//base/security/huks/frameworks/huks_standard/main/common/include",
42      "//base/security/huks/interfaces/inner_api/huks_standard/main/include",
43    ]
44    defines = [
45      "_HARDWARE_ROOT_KEY_",
46      "_HUKS_LOG_ENABLE_",
47    ]
48    sources = [ "hks_mutex.c" ]
49    cflags = [
50      "-Wall",
51      "-Werror",
52    ]
53    deps = [ "//base/security/huks/frameworks/huks_standard/main/os_dependency:libhuks_mem_standard_static" ]
54    external_deps = [
55      "c_utils:utils",
56      "hilog:libhilog",
57    ]
58    complete_static_lib = true
59  }
60} else {
61  ohos_static_library("libhuks_utils_mutex_static") {
62    public_configs = [ ":huks_config" ]
63    configs = [
64      "//base/security/huks/frameworks/config/build:l1_small_common_config",
65    ]
66
67    include_dirs = [
68      "//base/security/huks/frameworks/huks_standard/main/common/include",
69      "//base/security/huks/interfaces/inner_api/huks_standard/main/include",
70    ]
71    sources = [ "hks_mutex.c" ]
72
73    deps = [ "//base/security/huks/frameworks/huks_standard/main/os_dependency:libhuks_os_dependency_small_static" ]
74    external_deps = [ "hilog_lite:hilog_shared" ]
75    complete_static_lib = true
76  }
77}
78