1fc223305Sopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd.
2fc223305Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3fc223305Sopenharmony_ci# you may not use this file except in compliance with the License.
4fc223305Sopenharmony_ci# You may obtain a copy of the License at
5fc223305Sopenharmony_ci#
6fc223305Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7fc223305Sopenharmony_ci#
8fc223305Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9fc223305Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10fc223305Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11fc223305Sopenharmony_ci# See the License for the specific language governing permissions and
12fc223305Sopenharmony_ci# limitations under the License.
13fc223305Sopenharmony_ciimport("//build/ohos.gni")
14fc223305Sopenharmony_ciimport("//build/ohos/ace/ace.gni")
15fc223305Sopenharmony_ciimport("//foundation/distributeddatamgr/preferences/preferences.gni")
16fc223305Sopenharmony_ci
17fc223305Sopenharmony_ciif (!is_mingw && !is_mac) {
18fc223305Sopenharmony_ci  ohos_copy("preferences_declaration") {
19fc223305Sopenharmony_ci    sources = [ "./api" ]
20fc223305Sopenharmony_ci    outputs = [ target_out_dir + "/$target_name/" ]
21fc223305Sopenharmony_ci    module_source_dir = target_out_dir + "/$target_name"
22fc223305Sopenharmony_ci    module_install_name = ""
23fc223305Sopenharmony_ci    subsystem_name = "distributeddatamgr"
24fc223305Sopenharmony_ci    part_name = "preferences"
25fc223305Sopenharmony_ci  }
26fc223305Sopenharmony_ci
27fc223305Sopenharmony_ci  ohos_shared_library("storage") {
28fc223305Sopenharmony_ci    branch_protector_ret = "pac_ret"
29fc223305Sopenharmony_ci    sanitize = {
30fc223305Sopenharmony_ci      boundary_sanitize = true
31fc223305Sopenharmony_ci      ubsan = true
32fc223305Sopenharmony_ci      cfi = true
33fc223305Sopenharmony_ci      cfi_cross_dso = true
34fc223305Sopenharmony_ci      debug = false
35fc223305Sopenharmony_ci    }
36fc223305Sopenharmony_ci    cflags_cc = [
37fc223305Sopenharmony_ci      "-std=c++17",
38fc223305Sopenharmony_ci      "-stdlib=libc++",
39fc223305Sopenharmony_ci    ]
40fc223305Sopenharmony_ci    include_dirs = [
41fc223305Sopenharmony_ci      "include",
42fc223305Sopenharmony_ci      "${preferences_base_path}/frameworks/common/include",
43fc223305Sopenharmony_ci    ]
44fc223305Sopenharmony_ci
45fc223305Sopenharmony_ci    sources = [
46fc223305Sopenharmony_ci      "src/entry_point_storage.cpp",
47fc223305Sopenharmony_ci      "src/napi_storage.cpp",
48fc223305Sopenharmony_ci      "src/napi_storage_helper.cpp",
49fc223305Sopenharmony_ci    ]
50fc223305Sopenharmony_ci
51fc223305Sopenharmony_ci    deps = [
52fc223305Sopenharmony_ci      "${preferences_base_path}/interfaces/inner_api:native_preferences",
53fc223305Sopenharmony_ci      "${preferences_napi_path}/common:preferences_jscommon",
54fc223305Sopenharmony_ci    ]
55fc223305Sopenharmony_ci
56fc223305Sopenharmony_ci    external_deps = [
57fc223305Sopenharmony_ci      "ability_runtime:abilitykit_native",
58fc223305Sopenharmony_ci      "ability_runtime:napi_base_context",
59fc223305Sopenharmony_ci      "hilog:libhilog",
60fc223305Sopenharmony_ci      "napi:ace_napi",
61fc223305Sopenharmony_ci    ]
62fc223305Sopenharmony_ci
63fc223305Sopenharmony_ci    subsystem_name = "distributeddatamgr"
64fc223305Sopenharmony_ci    part_name = "preferences"
65fc223305Sopenharmony_ci    relative_install_dir = "module/data"
66fc223305Sopenharmony_ci  }
67fc223305Sopenharmony_ci}
68