1# Copyright (c) 2022 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.
13import("//build/ohos.gni")
14import("//build/ohos/ace/ace.gni")
15import("//foundation/distributeddatamgr/relational_store/relational_store.gni")
16
17ohos_copy("relational_store_declaration") {
18  sources = [ "./api" ]
19  outputs = [ target_out_dir + "/$target_name/" ]
20  module_source_dir = target_out_dir + "/$target_name"
21  module_install_name = ""
22}
23
24ohos_shared_library("napi_rdb") {
25  sources = [
26    "../common/src/js_utils.cpp",
27    "src/napi_async_call.cpp",
28    "src/napi_rdb_const_properties.cpp",
29    "src/napi_rdb_js_utils.cpp",
30    "src/napi_rdb_predicates.cpp",
31    "src/napi_rdb_store.cpp",
32    "src/napi_rdb_store_helper.cpp",
33    "src/napi_result_set.cpp",
34    "src/napi_uv_queue.cpp",
35    "src/napi_values_bucket.cpp",
36  ]
37
38  if (is_mingw || is_mac) {
39    include_dirs = [
40      "mock/include",
41      "${kvstore_path}/common",
42      "${relational_store_common_path}/include",
43      "${relational_store_js_common_path}/mock/include",
44      "${relational_store_napi_path}/rdb/mock/include",
45      "//commonlibrary/c_utils/base/include",
46      "include",
47      "${relational_store_js_common_path}/include",
48    ]
49    cflags_cc = [
50      "-std=c++17",
51      "-stdlib=libc++",
52    ]
53    if (is_mac) {
54      buildos = "mac"
55      defines = [ "MAC_PLATFORM" ]
56    } else {
57      buildos = "windows"
58      defines = [ "WINDOWS_PLATFORM" ]
59    }
60    sources += [ "${relational_store_js_common_path}/mock/src/js_ability.cpp" ]
61    deps = [
62      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_${buildos}",
63      "//foundation/arkui/napi:ace_napi",
64      "//foundation/distributeddatamgr/relational_store/interfaces/inner_api/rdb:native_rdb",
65    ]
66
67    external_deps = [ "bounds_checking_function:libsec_static" ]
68  } else {
69    include_dirs = [
70      "include",
71      "${datashare_path}/common/include/",
72      "${kvstore_path}/common",
73      "${relational_store_common_path}/include",
74      "${relational_store_js_common_path}/include",
75      "${relational_store_napi_path}/rdb/include",
76    ]
77    defines = [ "SQLITE_DISTRIBUTE_RELATIONAL" ]
78    sources += [
79      "${relational_store_js_common_path}/src/js_ability.cpp",
80      "src/napi_rdb_store_observer.cpp",
81    ]
82
83    deps = [
84      "${relational_store_innerapi_path}/appdatafwk:native_appdatafwk",
85      "${relational_store_innerapi_path}/rdb:native_rdb",
86      "${relational_store_innerapi_path}/rdb_data_share_adapter:rdb_data_share_adapter",
87    ]
88
89    external_deps = [
90      "ability_runtime:abilitykit_native",
91      "ability_runtime:napi_base_context",
92      "bounds_checking_function:libsec_shared",
93      "c_utils:utils",
94      "common_event_service:cesfwk_innerkits",
95      "hilog:libhilog",
96      "hitrace:hitrace_meter",
97      "napi:ace_napi",
98    ]
99  }
100
101  subsystem_name = "distributeddatamgr"
102  innerapi_tags = [ "platformsdk" ]
103  part_name = "relational_store"
104}
105
106ohos_shared_library("rdb") {
107  sources = [ "src/entry_point.cpp" ]
108
109  if (is_mingw || is_mac) {
110    include_dirs = [
111      "mock/include",
112      "${relational_store_common_path}/include",
113      "${relational_store_js_common_path}/mock/include",
114      "${relational_store_napi_path}/rdb/mock/include",
115      "//commonlibrary/c_utils/base/include",
116      "include",
117      "${relational_store_js_common_path}/include",
118    ]
119    cflags_cc = [
120      "-std=c++17",
121      "-stdlib=libc++",
122    ]
123    if (is_mac) {
124      buildos = "mac"
125      defines = [ "MAC_PLATFORM" ]
126    } else {
127      buildos = "windows"
128      defines = [ "WINDOWS_PLATFORM" ]
129    }
130
131    deps = [
132      ":napi_rdb",
133      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_${buildos}",
134      "//foundation/arkui/napi:ace_napi",
135      "//foundation/distributeddatamgr/relational_store/interfaces/inner_api/rdb:native_rdb",
136    ]
137  } else {
138    include_dirs = [
139      "include",
140      "${datashare_path}/common/include/",
141      "${relational_store_js_common_path}/include",
142      "${relational_store_napi_path}/rdb/include",
143    ]
144    defines = [ "SQLITE_DISTRIBUTE_RELATIONAL" ]
145
146    deps = [
147      ":napi_rdb",
148      "${relational_store_innerapi_path}/appdatafwk:native_appdatafwk",
149      "${relational_store_innerapi_path}/rdb:native_rdb",
150      "${relational_store_innerapi_path}/rdb_data_share_adapter:rdb_data_share_adapter",
151    ]
152
153    external_deps = [
154      "ability_runtime:abilitykit_native",
155      "ability_runtime:napi_base_context",
156      "c_utils:utils",
157      "hilog:libhilog",
158      "hitrace:hitrace_meter",
159      "napi:ace_napi",
160    ]
161  }
162
163  subsystem_name = "distributeddatamgr"
164  part_name = "relational_store"
165  relative_install_dir = "module/data"
166}
167