115053c2dSopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd.
215053c2dSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
315053c2dSopenharmony_ci# you may not use this file except in compliance with the License.
415053c2dSopenharmony_ci# You may obtain a copy of the License at
515053c2dSopenharmony_ci#
615053c2dSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
715053c2dSopenharmony_ci#
815053c2dSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
915053c2dSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1015053c2dSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1115053c2dSopenharmony_ci# See the License for the specific language governing permissions and
1215053c2dSopenharmony_ci# limitations under the License.
1315053c2dSopenharmony_ciimport("//build/ohos.gni")
1415053c2dSopenharmony_ciimport("distributeddb.gni")
1515053c2dSopenharmony_ci
1615053c2dSopenharmony_ciconfig("distrdb_config") {
1715053c2dSopenharmony_ci  visibility = [ ":*" ]
1815053c2dSopenharmony_ci  include_dirs = [
1915053c2dSopenharmony_ci    "include",
2015053c2dSopenharmony_ci    "interfaces/include",
2115053c2dSopenharmony_ci    "interfaces/include/cloud",
2215053c2dSopenharmony_ci    "interfaces/src",
2315053c2dSopenharmony_ci    "interfaces/src/relational",
2415053c2dSopenharmony_ci    "common/include",
2515053c2dSopenharmony_ci    "common/include/cloud",
2615053c2dSopenharmony_ci    "common/include/relational",
2715053c2dSopenharmony_ci    "common/src/cloud",
2815053c2dSopenharmony_ci    "communicator/include",
2915053c2dSopenharmony_ci    "storage/include",
3015053c2dSopenharmony_ci    "storage/src",
3115053c2dSopenharmony_ci    "storage/src/multiver",
3215053c2dSopenharmony_ci    "storage/src/operation",
3315053c2dSopenharmony_ci    "storage/src/gaussdb_rd",
3415053c2dSopenharmony_ci    "storage/src/sqlite",
3515053c2dSopenharmony_ci    "storage/src/sqlite/kv",
3615053c2dSopenharmony_ci    "storage/src/sqlite/relational",
3715053c2dSopenharmony_ci    "storage/src/upgrader",
3815053c2dSopenharmony_ci    "storage/src/cloud",
3915053c2dSopenharmony_ci    "storage/src/kv",
4015053c2dSopenharmony_ci    "storage/src/relational",
4115053c2dSopenharmony_ci    "syncer/include",
4215053c2dSopenharmony_ci    "syncer/src",
4315053c2dSopenharmony_ci    "syncer/src/cloud",
4415053c2dSopenharmony_ci    "syncer/src/device",
4515053c2dSopenharmony_ci    "syncer/src/device/multiver",
4615053c2dSopenharmony_ci    "syncer/src/device/singlever",
4715053c2dSopenharmony_ci    "//third_party/openssl/include/",
4815053c2dSopenharmony_ci  ]
4915053c2dSopenharmony_ci
5015053c2dSopenharmony_ci  defines = [
5115053c2dSopenharmony_ci    "_LARGEFILE64_SOURCE",
5215053c2dSopenharmony_ci    "_FILE_OFFSET_BITS=64",
5315053c2dSopenharmony_ci    "SQLITE_HAS_CODEC",
5415053c2dSopenharmony_ci    "SQLITE_ENABLE_JSON1",
5515053c2dSopenharmony_ci    "USING_HILOG_LOGGER",
5615053c2dSopenharmony_ci    "USE_SQLITE_SYMBOLS",
5715053c2dSopenharmony_ci    "USING_DB_JSON_EXTRACT_AUTOMATICALLY",
5815053c2dSopenharmony_ci    "JSONCPP_USE_BUILDER",
5915053c2dSopenharmony_ci    "OMIT_FLATBUFFER",
6015053c2dSopenharmony_ci    "OMIT_MULTI_VER",
6115053c2dSopenharmony_ci    "RELATIONAL_STORE",
6215053c2dSopenharmony_ci    "SQLITE_DISTRIBUTE_RELATIONAL",
6315053c2dSopenharmony_ci    "USE_DFX_ABILITY",
6415053c2dSopenharmony_ci    "SQLITE_ENABLE_DROPTABLE_CALLBACK",
6515053c2dSopenharmony_ci    "OPENSSL_SUPPRESS_DEPRECATED",
6615053c2dSopenharmony_ci  ]
6715053c2dSopenharmony_ci  if (is_debug) {
6815053c2dSopenharmony_ci    defines += [ "TRACE_SQLITE_EXECUTE" ]
6915053c2dSopenharmony_ci  }
7015053c2dSopenharmony_ci  if (is_ohos) {
7115053c2dSopenharmony_ci    defines += [ "USE_FFRT" ]
7215053c2dSopenharmony_ci  }
7315053c2dSopenharmony_ci}
7415053c2dSopenharmony_ci
7515053c2dSopenharmony_ciconfig("distrdb_public_config") {
7615053c2dSopenharmony_ci  visibility = [ "*:*" ]
7715053c2dSopenharmony_ci  include_dirs = [
7815053c2dSopenharmony_ci    "interfaces/include",
7915053c2dSopenharmony_ci    "interfaces/include/relational",
8015053c2dSopenharmony_ci    "include",
8115053c2dSopenharmony_ci    "gaussdb_rd/include",
8215053c2dSopenharmony_ci    "gaussdb_rd/include/grd_base",
8315053c2dSopenharmony_ci    "gaussdb_rd/include/grd_document",
8415053c2dSopenharmony_ci    "gaussdb_rd/include/grd_kv",
8515053c2dSopenharmony_ci  ]
8615053c2dSopenharmony_ci}
8715053c2dSopenharmony_ci
8815053c2dSopenharmony_cigroup("build_module") {
8915053c2dSopenharmony_ci  deps = [ ":distributeddb" ]
9015053c2dSopenharmony_ci}
9115053c2dSopenharmony_ci
9215053c2dSopenharmony_ciohos_shared_library("distributeddb") {
9315053c2dSopenharmony_ci  branch_protector_ret = "pac_ret"
9415053c2dSopenharmony_ci  sanitize = {
9515053c2dSopenharmony_ci    ubsan = true
9615053c2dSopenharmony_ci    boundary_sanitize = true
9715053c2dSopenharmony_ci    cfi = true
9815053c2dSopenharmony_ci    cfi_cross_dso = true
9915053c2dSopenharmony_ci    debug = false
10015053c2dSopenharmony_ci  }
10115053c2dSopenharmony_ci  sources = distributeddb_src
10215053c2dSopenharmony_ci
10315053c2dSopenharmony_ci  configs = [ ":distrdb_config" ]
10415053c2dSopenharmony_ci  public_configs = [ ":distrdb_public_config" ]
10515053c2dSopenharmony_ci
10615053c2dSopenharmony_ci  cflags_cc = [ "-fvisibility=hidden" ]
10715053c2dSopenharmony_ci  deps = [ "gaussdb_rd:gaussdb_rd" ]
10815053c2dSopenharmony_ci
10915053c2dSopenharmony_ci  external_deps = [
11015053c2dSopenharmony_ci    "c_utils:utils",
11115053c2dSopenharmony_ci    "ffrt:libffrt",
11215053c2dSopenharmony_ci    "hilog:libhilog",
11315053c2dSopenharmony_ci    "hisysevent:libhisysevent",
11415053c2dSopenharmony_ci    "hitrace:hitrace_meter",
11515053c2dSopenharmony_ci    "zlib:shared_libz",
11615053c2dSopenharmony_ci  ]
11715053c2dSopenharmony_ci
11815053c2dSopenharmony_ci  public_external_deps = [
11915053c2dSopenharmony_ci    "jsoncpp:jsoncpp",
12015053c2dSopenharmony_ci    "openssl:libcrypto_shared",
12115053c2dSopenharmony_ci    "sqlite:sqlite",
12215053c2dSopenharmony_ci  ]
12315053c2dSopenharmony_ci
12415053c2dSopenharmony_ci  subsystem_name = "distributeddatamgr"
12515053c2dSopenharmony_ci  innerapi_tags = [ "platformsdk_indirect" ]
12615053c2dSopenharmony_ci  part_name = "kv_store"
12715053c2dSopenharmony_ci}
128