• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 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
16ohos_ndk_library("libasset_ndk") {
17  output_name = "asset_ndk"
18  output_extension = "z.so"
19  ndk_description_file = "./libasset.ndk.json"
20  min_compact_version = "11"
21  system_capability = "SystemCapability.Security.Asset"
22  system_capability_headers = [
23    "inc/asset_api.h",
24    "inc/asset_type.h",
25  ]
26}
27
28ohos_ndk_headers("asset_header") {
29  dest_dir = "$ndk_headers_out_dir/asset"
30  sources = [
31    "inc/asset_api.h",
32    "inc/asset_type.h",
33  ]
34}
35
36config("asset_config") {
37  include_dirs = [ "inc" ]
38}
39
40ohos_shared_library("asset_ndk") {
41  public_configs = [ ":asset_config" ]
42  sources = [ "src/asset_api.c" ]
43  deps = [
44    ":asset_sdk_ffi",
45    "../../../frameworks/os_dependency/memory:asset_mem",
46  ]
47
48  external_deps = [
49    "c_utils:utils",
50    "hilog:libhilog",
51  ]
52
53  branch_protector_ret = "pac_ret"
54  sanitize = {
55    integer_overflow = true
56    cfi = true
57    debug = false
58    cfi_cross_dso = true
59    boundary_sanitize = true
60    ubsan = true
61  }
62  cflags = [
63    "-Wall",
64    "-Werror",
65    "-fPIC",
66  ]
67
68  relative_install_dir = "ndk"
69  subsystem_name = "security"
70  part_name = "asset"
71}
72
73ohos_rust_shared_ffi("asset_sdk_ffi") {
74  sources = [ "src/lib.rs" ]
75  deps = [
76    "../../../frameworks/os_dependency/log:asset_log",
77    "../../../frameworks/os_dependency/memory:asset_mem",
78    "../../inner_api/rs:asset_sdk",
79  ]
80  crate_name = "asset_sdk_ffi"
81  subsystem_name = "security"
82  part_name = "asset"
83}
84