115053c2dSopenharmony_ci# Copyright (c) 2022 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("//foundation/distributeddatamgr/kv_store/kv_store.gni")
1515053c2dSopenharmony_ciimport("../.././frameworks/libs/distributeddb/distributeddb.gni")
1615053c2dSopenharmony_cikv_store_distributeddb_path = "../.././frameworks/libs/distributeddb/"
1715053c2dSopenharmony_cidistrdb_Dir = [
1815053c2dSopenharmony_ci  "${kv_store_distributeddb_path}include",
1915053c2dSopenharmony_ci  "${kv_store_distributeddb_path}interfaces/include",
2015053c2dSopenharmony_ci  "${kv_store_distributeddb_path}interfaces/src",
2115053c2dSopenharmony_ci  "${kv_store_distributeddb_path}interfaces/src/relational",
2215053c2dSopenharmony_ci  "${kv_store_distributeddb_path}common/include",
2315053c2dSopenharmony_ci  "${kv_store_distributeddb_path}common/include/relational",
2415053c2dSopenharmony_ci  "${kv_store_distributeddb_path}communicator/include",
2515053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd",
2615053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd/include",
2715053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd/include/grd_base",
2815053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd/include/grd_document",
2915053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd/include/grd_kv",
3015053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/include",
3115053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src",
3215053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src/cloud",
3315053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src/kv",
3415053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src/gaussdb_rd",
3515053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src/multiver",
3615053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src/operation",
3715053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src/relational",
3815053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src/sqlite",
3915053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src/sqlite/kv",
4015053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src/sqlite/relational",
4115053c2dSopenharmony_ci  "${kv_store_distributeddb_path}storage/src/upgrader",
4215053c2dSopenharmony_ci  "${kv_store_distributeddb_path}syncer/include",
4315053c2dSopenharmony_ci  "${kv_store_distributeddb_path}syncer/src",
4415053c2dSopenharmony_ci  "${kv_store_distributeddb_path}syncer/src/cloud",
4515053c2dSopenharmony_ci  "${kv_store_distributeddb_path}syncer/src/device",
4615053c2dSopenharmony_ci  "${kv_store_distributeddb_path}syncer/src/device/multiver",
4715053c2dSopenharmony_ci  "${kv_store_distributeddb_path}syncer/src/device/singlever",
4815053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd/src/common/include",
4915053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd/src/executor/include",
5015053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd/src/executor/document",
5115053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd/src/oh_adapter/include",
5215053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd/src/oh_adapter/src",
5315053c2dSopenharmony_ci  "${kv_store_distributeddb_path}gaussdb_rd/src/interface/include",
5415053c2dSopenharmony_ci
5515053c2dSopenharmony_ci  "//third_party/openssl/include/",
5615053c2dSopenharmony_ci  "//third_party/bounds_checking_function/include",
5715053c2dSopenharmony_ci]
5815053c2dSopenharmony_cidistrdb_defines = [
5915053c2dSopenharmony_ci  "_LARGEFILE64_SOURCE",
6015053c2dSopenharmony_ci  "_FILE_OFFSET_BITS=64",
6115053c2dSopenharmony_ci  "SQLITE_HAS_CODEC",
6215053c2dSopenharmony_ci  "SQLITE_ENABLE_JSON1",
6315053c2dSopenharmony_ci  "USE_SQLITE_SYMBOLS",
6415053c2dSopenharmony_ci  "USING_DB_JSON_EXTRACT_AUTOMATICALLY",
6515053c2dSopenharmony_ci  "JSONCPP_USE_BUILDER",
6615053c2dSopenharmony_ci  "OMIT_FLATBUFFER",
6715053c2dSopenharmony_ci  "OMIT_MULTI_VER",
6815053c2dSopenharmony_ci  "RELATIONAL_STORE",
6915053c2dSopenharmony_ci  "SQLITE_DISTRIBUTE_RELATIONAL",
7015053c2dSopenharmony_ci  "SQLITE_ENABLE_DROPTABLE_CALLBACK",
7115053c2dSopenharmony_ci]
7215053c2dSopenharmony_ciconfig("distrdb_public_config") {
7315053c2dSopenharmony_ci  visibility = [ "*:*" ]
7415053c2dSopenharmony_ci  include_dirs = [
7515053c2dSopenharmony_ci    "${kv_store_distributeddb_path}interfaces/include",
7615053c2dSopenharmony_ci    "${kv_store_distributeddb_path}interfaces/include/relational",
7715053c2dSopenharmony_ci    "${kv_store_distributeddb_path}include",
7815053c2dSopenharmony_ci    "${kv_store_distributeddb_path}gaussdb_rd/include/grd_base",
7915053c2dSopenharmony_ci    "${kv_store_distributeddb_path}gaussdb_rd/include/grd_document",
8015053c2dSopenharmony_ci    "${kv_store_distributeddb_path}gaussdb_rd/include/grd_kv",
8115053c2dSopenharmony_ci  ]
8215053c2dSopenharmony_ci}
8315053c2dSopenharmony_ci
8415053c2dSopenharmony_cigroup("build_module") {
8515053c2dSopenharmony_ci  deps = []
8615053c2dSopenharmony_ci  if (use_platform_win || use_platforn_mac) {
8715053c2dSopenharmony_ci    deps += [ ":distributeddb" ]
8815053c2dSopenharmony_ci  }
8915053c2dSopenharmony_ci}
9015053c2dSopenharmony_cidistrdb_sources = distributeddb_src
9115053c2dSopenharmony_ci
9215053c2dSopenharmony_ciconfig("distrdb_config") {
9315053c2dSopenharmony_ci  visibility = [ ":*" ]
9415053c2dSopenharmony_ci  include_dirs = distrdb_Dir
9515053c2dSopenharmony_ci  include_dirs += [
9615053c2dSopenharmony_ci    "//third_party/jsoncpp/include",
9715053c2dSopenharmony_ci    "//third_party/zlib",
9815053c2dSopenharmony_ci    "//third_party/sqlite/include",
9915053c2dSopenharmony_ci    "//third_party/bounds_checking_function/include",
10015053c2dSopenharmony_ci  ]
10115053c2dSopenharmony_ci
10215053c2dSopenharmony_ci  defines = distrdb_defines
10315053c2dSopenharmony_ci  defines += [
10415053c2dSopenharmony_ci    "EVLOOP_TIMER_ONLY",
10515053c2dSopenharmony_ci    "USING_PRINTF_LOGGER",
10615053c2dSopenharmony_ci    "OPENSSL_SUPPRESS_DEPRECATED",
10715053c2dSopenharmony_ci    "OMIT_cJSON",
10815053c2dSopenharmony_ci  ]
10915053c2dSopenharmony_ci  if (use_platform_win) {
11015053c2dSopenharmony_ci    defines += [ "OS_TYPE_WINDOWS" ]
11115053c2dSopenharmony_ci  } else if (use_platforn_mac) {
11215053c2dSopenharmony_ci    defines += [ "OS_TYPE_MAC" ]
11315053c2dSopenharmony_ci  }
11415053c2dSopenharmony_ci}
11515053c2dSopenharmony_ci
11615053c2dSopenharmony_ciohos_shared_library("distributeddb_mock") {
11715053c2dSopenharmony_ci  cflags_cc = [ "-std=c++17" ]
11815053c2dSopenharmony_ci  sources = distrdb_sources
11915053c2dSopenharmony_ci  sources += distributeddb_src_rd
12015053c2dSopenharmony_ci  configs = [ ":distrdb_config" ]
12115053c2dSopenharmony_ci  public_configs = [ ":distrdb_public_config" ]
12215053c2dSopenharmony_ci  ldflags = [ "-v" ]
12315053c2dSopenharmony_ci  deps = [
12415053c2dSopenharmony_ci    "//third_party/bounds_checking_function:libsec_static",
12515053c2dSopenharmony_ci    "//third_party/jsoncpp:jsoncpp_static",
12615053c2dSopenharmony_ci    "//third_party/openssl:libcrypto_static",
12715053c2dSopenharmony_ci    "//third_party/sqlite:sqlite_sdk",
12815053c2dSopenharmony_ci    "//third_party/zlib:shared_libz",
12915053c2dSopenharmony_ci  ]
13015053c2dSopenharmony_ci
13115053c2dSopenharmony_ci  if (use_platform_win) {
13215053c2dSopenharmony_ci    libs = [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib/libws2_32.a" ]
13315053c2dSopenharmony_ci    deps += [
13415053c2dSopenharmony_ci      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_windows",
13515053c2dSopenharmony_ci    ]
13615053c2dSopenharmony_ci  } else if (use_platforn_mac) {
13715053c2dSopenharmony_ci    deps +=
13815053c2dSopenharmony_ci        [ "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_mac" ]
13915053c2dSopenharmony_ci  }
14015053c2dSopenharmony_ci  configs += [ "//third_party/jsoncpp:jsoncpp_config" ]
14115053c2dSopenharmony_ci
14215053c2dSopenharmony_ci  subsystem_name = "distributeddatamgr"
14315053c2dSopenharmony_ci  part_name = "kv_store"
14415053c2dSopenharmony_ci}
145