1fc0b0055Sopenharmony_ci# Copyright (c) 2021-2023 Huawei Device Co., Ltd.
2fc0b0055Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3fc0b0055Sopenharmony_ci# you may not use this file except in compliance with the License.
4fc0b0055Sopenharmony_ci# You may obtain a copy of the License at
5fc0b0055Sopenharmony_ci#
6fc0b0055Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7fc0b0055Sopenharmony_ci#
8fc0b0055Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9fc0b0055Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10fc0b0055Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11fc0b0055Sopenharmony_ci# See the License for the specific language governing permissions and
12fc0b0055Sopenharmony_ci# limitations under the License.
13fc0b0055Sopenharmony_ci
14fc0b0055Sopenharmony_ciimport("//build/ohos.gni")
15fc0b0055Sopenharmony_ci
16fc0b0055Sopenharmony_ciconfig("accesstokenlib") {
17fc0b0055Sopenharmony_ci  visibility = [ ":*" ]
18fc0b0055Sopenharmony_ci  include_dirs = [ "include" ]
19fc0b0055Sopenharmony_ci}
20fc0b0055Sopenharmony_ci
21fc0b0055Sopenharmony_ciif (is_standard_system) {
22fc0b0055Sopenharmony_ci  ohos_static_library("libnativetoken") {
23fc0b0055Sopenharmony_ci    subsystem_name = "security"
24fc0b0055Sopenharmony_ci    part_name = "access_token"
25fc0b0055Sopenharmony_ci    output_name = "libnativetoken"
26fc0b0055Sopenharmony_ci    sanitize = {
27fc0b0055Sopenharmony_ci      cfi = true
28fc0b0055Sopenharmony_ci      cfi_cross_dso = true
29fc0b0055Sopenharmony_ci      debug = false
30fc0b0055Sopenharmony_ci    }
31fc0b0055Sopenharmony_ci    branch_protector_ret = "pac_ret"
32fc0b0055Sopenharmony_ci
33fc0b0055Sopenharmony_ci    public_configs = [ ":accesstokenlib" ]
34fc0b0055Sopenharmony_ci
35fc0b0055Sopenharmony_ci    cflags = [ "-Wall" ]
36fc0b0055Sopenharmony_ci
37fc0b0055Sopenharmony_ci    include_dirs = [ "src" ]
38fc0b0055Sopenharmony_ci
39fc0b0055Sopenharmony_ci    sources = [
40fc0b0055Sopenharmony_ci      "src/nativetoken.c",
41fc0b0055Sopenharmony_ci      "src/nativetoken_json_oper.c",
42fc0b0055Sopenharmony_ci      "src/nativetoken_klog.c",
43fc0b0055Sopenharmony_ci    ]
44fc0b0055Sopenharmony_ci
45fc0b0055Sopenharmony_ci    external_deps = [
46fc0b0055Sopenharmony_ci      "bounds_checking_function:libsec_shared",
47fc0b0055Sopenharmony_ci      "cJSON:cjson_static",
48fc0b0055Sopenharmony_ci      "hilog:libhilog",
49fc0b0055Sopenharmony_ci    ]
50fc0b0055Sopenharmony_ci
51fc0b0055Sopenharmony_ci    if (build_selinux) {
52fc0b0055Sopenharmony_ci      external_deps += [ "selinux_adapter:librestorecon" ]
53fc0b0055Sopenharmony_ci      cflags += [ "-DWITH_SELINUX" ]
54fc0b0055Sopenharmony_ci    }
55fc0b0055Sopenharmony_ci  }
56fc0b0055Sopenharmony_ci
57fc0b0055Sopenharmony_ci  ohos_shared_library("libnativetoken_shared") {
58fc0b0055Sopenharmony_ci    subsystem_name = "security"
59fc0b0055Sopenharmony_ci    part_name = "access_token"
60fc0b0055Sopenharmony_ci    output_name = "libnativetoken_shared"
61fc0b0055Sopenharmony_ci    sanitize = {
62fc0b0055Sopenharmony_ci      cfi = true
63fc0b0055Sopenharmony_ci      cfi_cross_dso = true
64fc0b0055Sopenharmony_ci      debug = false
65fc0b0055Sopenharmony_ci    }
66fc0b0055Sopenharmony_ci    branch_protector_ret = "pac_ret"
67fc0b0055Sopenharmony_ci    innerapi_tags = [ "platformsdk" ]
68fc0b0055Sopenharmony_ci    public_configs = [ ":accesstokenlib" ]
69fc0b0055Sopenharmony_ci
70fc0b0055Sopenharmony_ci    cflags = [ "-Wall" ]
71fc0b0055Sopenharmony_ci
72fc0b0055Sopenharmony_ci    include_dirs = [ "src" ]
73fc0b0055Sopenharmony_ci
74fc0b0055Sopenharmony_ci    sources = [
75fc0b0055Sopenharmony_ci      "src/nativetoken.c",
76fc0b0055Sopenharmony_ci      "src/nativetoken_json_oper.c",
77fc0b0055Sopenharmony_ci      "src/nativetoken_klog.c",
78fc0b0055Sopenharmony_ci    ]
79fc0b0055Sopenharmony_ci
80fc0b0055Sopenharmony_ci    external_deps = [
81fc0b0055Sopenharmony_ci      "bounds_checking_function:libsec_shared",
82fc0b0055Sopenharmony_ci      "cJSON:cjson_static",
83fc0b0055Sopenharmony_ci      "hilog:libhilog",
84fc0b0055Sopenharmony_ci    ]
85fc0b0055Sopenharmony_ci
86fc0b0055Sopenharmony_ci    if (build_selinux) {
87fc0b0055Sopenharmony_ci      external_deps += [ "selinux_adapter:librestorecon" ]
88fc0b0055Sopenharmony_ci      cflags += [ "-DWITH_SELINUX" ]
89fc0b0055Sopenharmony_ci    }
90fc0b0055Sopenharmony_ci  }
91fc0b0055Sopenharmony_ci}
92