1fc223305Sopenharmony_ci# Copyright (c) 2023 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_cibase_include = [
18fc223305Sopenharmony_ci  "${preferences_napi_path}/sendable_preferences/include",
19fc223305Sopenharmony_ci  "${preferences_base_path}/frameworks/common/include",
20fc223305Sopenharmony_ci]
21fc223305Sopenharmony_ci
22fc223305Sopenharmony_cibase_sources = [
23fc223305Sopenharmony_ci  "${preferences_napi_path}/sendable_preferences/src/entry_point.cpp",
24fc223305Sopenharmony_ci  "${preferences_napi_path}/sendable_preferences/src/napi_preferences.cpp",
25fc223305Sopenharmony_ci  "${preferences_napi_path}/sendable_preferences/src/napi_preferences_helper.cpp",
26fc223305Sopenharmony_ci]
27fc223305Sopenharmony_ci
28fc223305Sopenharmony_ciif (is_ohos) {
29fc223305Sopenharmony_ci  ohos_copy("preferences_declaration") {
30fc223305Sopenharmony_ci    sources = [ "./api" ]
31fc223305Sopenharmony_ci    outputs = [ target_out_dir + "/$target_name/" ]
32fc223305Sopenharmony_ci    module_source_dir = target_out_dir + "/$target_name"
33fc223305Sopenharmony_ci    module_install_name = ""
34fc223305Sopenharmony_ci    subsystem_name = "distributeddatamgr"
35fc223305Sopenharmony_ci    part_name = "preferences"
36fc223305Sopenharmony_ci  }
37fc223305Sopenharmony_ci
38fc223305Sopenharmony_ci  ohos_shared_library("sendablepreferences") {
39fc223305Sopenharmony_ci    branch_protector_ret = "pac_ret"
40fc223305Sopenharmony_ci    sanitize = {
41fc223305Sopenharmony_ci      boundary_sanitize = true
42fc223305Sopenharmony_ci      ubsan = true
43fc223305Sopenharmony_ci      cfi = true
44fc223305Sopenharmony_ci      cfi_cross_dso = true
45fc223305Sopenharmony_ci      debug = false
46fc223305Sopenharmony_ci    }
47fc223305Sopenharmony_ci    include_dirs = base_include
48fc223305Sopenharmony_ci    sources = base_sources
49fc223305Sopenharmony_ci    cflags_cc = [
50fc223305Sopenharmony_ci      "-std=c++17",
51fc223305Sopenharmony_ci      "-stdlib=libc++",
52fc223305Sopenharmony_ci    ]
53fc223305Sopenharmony_ci
54fc223305Sopenharmony_ci    deps = [
55fc223305Sopenharmony_ci      "${preferences_base_path}/interfaces/inner_api:native_preferences",
56fc223305Sopenharmony_ci      "${preferences_napi_path}/common:preferences_jscommon",
57fc223305Sopenharmony_ci    ]
58fc223305Sopenharmony_ci
59fc223305Sopenharmony_ci    external_deps = [
60fc223305Sopenharmony_ci      "ability_runtime:abilitykit_native",
61fc223305Sopenharmony_ci      "ability_runtime:napi_base_context",
62fc223305Sopenharmony_ci      "c_utils:utils",
63fc223305Sopenharmony_ci      "hilog:libhilog",
64fc223305Sopenharmony_ci      "napi:ace_napi",
65fc223305Sopenharmony_ci    ]
66fc223305Sopenharmony_ci
67fc223305Sopenharmony_ci    subsystem_name = "distributeddatamgr"
68fc223305Sopenharmony_ci    part_name = "preferences"
69fc223305Sopenharmony_ci    relative_install_dir = "module/data"
70fc223305Sopenharmony_ci  }
71fc223305Sopenharmony_ci}
72