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
24sources = [
25  "../common/src/js_df_manager.cpp",
26  "../common/src/js_scope.cpp",
27  "../common/src/js_sendable_utils.cpp",
28  "../common/src/js_utils.cpp",
29  "../common/src/js_uv_queue.cpp",
30  "src/entry_point.cpp",
31  "src/napi_async_call.cpp",
32  "src/napi_rdb_const_properties.cpp",
33  "src/napi_rdb_error.cpp",
34  "src/napi_rdb_js_utils.cpp",
35  "src/napi_rdb_predicates.cpp",
36  "src/napi_rdb_sendable_utils.cpp",
37  "src/napi_rdb_store.cpp",
38  "src/napi_rdb_store_helper.cpp",
39  "src/napi_result_set.cpp",
40  "src/napi_transaction.cpp",
41  "src/napi_uv_queue.cpp",
42]
43
44if (is_ohos) {
45  ohos_shared_library("relationalstore") {
46    include_dirs = [
47      "include",
48      "${datashare_path}/common/include/",
49      "${kvstore_path}/common",
50      "${relational_store_common_path}/include",
51      "${relational_store_js_common_path}/include",
52      "${relational_store_napi_path}/relationalstore/include",
53    ]
54
55    defines = [ "SQLITE_DISTRIBUTE_RELATIONAL" ]
56
57    sources += [
58      "${relational_store_js_common_path}/src/js_ability.cpp",
59      "src/napi_rdb_store_observer.cpp",
60    ]
61
62    deps = [
63      "${relational_store_innerapi_path}/appdatafwk:native_appdatafwk",
64      "${relational_store_innerapi_path}/rdb:native_rdb",
65      "${relational_store_innerapi_path}/rdb_data_share_adapter:rdb_data_share_adapter",
66    ]
67
68    external_deps = [
69      "ability_runtime:abilitykit_native",
70      "ability_runtime:extensionkit_native",
71      "ability_runtime:napi_base_context",
72      "bounds_checking_function:libsec_shared",
73      "c_utils:utils",
74      "common_event_service:cesfwk_innerkits",
75      "eventhandler:libeventhandler",
76      "hilog:libhilog",
77      "hitrace:hitrace_meter",
78      "napi:ace_napi",
79    ]
80
81    subsystem_name = "distributeddatamgr"
82    part_name = "relational_store"
83    relative_install_dir = "module/data"
84  }
85} else if (is_mingw) {
86  ohos_shared_library("relationalstore") {
87    include_dirs = [
88      "mock/include",
89      "${kvstore_path}/common",
90      "${relational_store_common_path}/include",
91      "${relational_store_js_common_path}/mock/include",
92      "${relational_store_napi_path}/relationalstore/mock/include",
93      "//commonlibrary/c_utils/base/include",
94      "include",
95      "${relational_store_js_common_path}/include",
96    ]
97    cflags_cc = [
98      "-std=c++17",
99      "-stdlib=libc++",
100    ]
101
102    buildos = "windows"
103    defines = [
104      "WINDOWS_PLATFORM",
105      "CROSS_PLATFORM",
106      "API_EXPORT=__declspec(dllimport)",
107    ]
108
109    sources += [ "${relational_store_js_common_path}/mock/src/js_ability.cpp" ]
110
111    deps = [
112      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_${buildos}",
113      "//foundation/arkui/napi:ace_napi",
114      "//foundation/distributeddatamgr/relational_store/interfaces/inner_api/rdb:native_rdb",
115    ]
116
117    external_deps = [ "bounds_checking_function:libsec_static" ]
118
119    subsystem_name = "distributeddatamgr"
120    part_name = "relational_store"
121    relative_install_dir = "module/data"
122  }
123} else if (is_mac) {
124  ohos_shared_library("relationalstore") {
125    include_dirs = [
126      "mock/include",
127      "${kvstore_path}/common",
128      "${relational_store_common_path}/include",
129      "${relational_store_js_common_path}/mock/include",
130      "${relational_store_napi_path}/relationalstore/mock/include",
131      "//commonlibrary/c_utils/base/include",
132      "include",
133      "${relational_store_js_common_path}/include",
134    ]
135
136    cflags_cc = [
137      "-std=c++17",
138      "-stdlib=libc++",
139    ]
140
141    buildos = "mac"
142    defines = [
143      "MAC_PLATFORM",
144      "CROSS_PLATFORM",
145    ]
146
147    sources += [ "${relational_store_js_common_path}/mock/src/js_ability.cpp" ]
148
149    deps = [
150      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_${buildos}",
151      "//foundation/arkui/napi:ace_napi",
152      "//foundation/distributeddatamgr/relational_store/interfaces/inner_api/rdb:native_rdb",
153    ]
154
155    external_deps = [ "bounds_checking_function:libsec_static" ]
156
157    subsystem_name = "distributeddatamgr"
158    part_name = "relational_store"
159    relative_install_dir = "module/data"
160  }
161} else if (is_android) {
162  ohos_source_set("data_relationalstore") {
163    include_dirs = [
164      "mock/include",
165      "${kvstore_path}/common",
166      "${relational_store_common_path}/include",
167      "${relational_store_js_common_path}/mock/include",
168      "include",
169      "${relational_store_js_common_path}/include",
170      "//base/global/resource_management/interfaces/inner_api/include",
171      "//foundation/appframework/ability/ability_runtime/cross_platform/interfaces/inner_api/napi_base_context/include",
172      "//foundation/appframework/ability/ability_runtime/cross_platform/interfaces/inner_api/bundle",
173      "//foundation/appframework/ability/ability_runtime/cross_platform/interfaces/inner_api/configuration",
174      "//foundation/appframework/ability/ability_runtime/cross_platform/interfaces/kits/native/appkit",
175    ]
176
177    cflags_cc = [
178      "-std=c++17",
179      "-stdlib=libc++",
180    ]
181
182    defines = [ "ANDROID_PLATFORM" ]
183
184    sources += [
185      "${relational_store_js_common_path}/mock/src/js_ability.cpp",
186      "//foundation/appframework/ability/ability_runtime/cross_platform/interfaces/inner_api/napi_base_context/src/napi_base_context.cpp",
187    ]
188
189    deps = [
190      "${relational_store_innerapi_path}/rdb:native_rdb",
191      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_android",
192      "//foundation/arkui/ace_engine/adapter/android/build:libarkui_android",
193    ]
194
195    external_deps = [ "bounds_checking_function:libsec_static" ]
196
197    subsystem_name = "distributeddatamgr"
198    part_name = "relational_store"
199  }
200} else if (is_ios) {
201  ohos_source_set("data_relationalstore") {
202    include_dirs = [
203      "mock/include",
204      "${kvstore_path}/common",
205      "${relational_store_common_path}/include",
206      "${relational_store_js_common_path}/mock/include",
207      "include",
208      "${relational_store_js_common_path}/include",
209      "//base/global/resource_management/interfaces/inner_api/include",
210      "//foundation/appframework/ability/ability_runtime/cross_platform/interfaces/inner_api/napi_base_context/include",
211      "//foundation/appframework/ability/ability_runtime/cross_platform/interfaces/inner_api/bundle",
212      "//foundation/appframework/ability/ability_runtime/cross_platform/interfaces/inner_api/configuration",
213      "//foundation/appframework/ability/ability_runtime/cross_platform/interfaces/kits/native/appkit",
214    ]
215
216    cflags_cc = [
217      "-std=c++17",
218      "-stdlib=libc++",
219    ]
220
221    defines = [
222      "IOS_PLATFORM",
223      "CROSS_PLATFORM",
224    ]
225
226    sources += [ "${relational_store_js_common_path}/mock/src/js_ability.cpp" ]
227
228    deps = [
229      "${relational_store_innerapi_path}/rdb:native_rdb",
230      "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_ios",
231      "//plugins/libs/napi:napi_ios",
232    ]
233
234    external_deps = [
235      "bounds_checking_function:libsec_static",
236      "c_utils:utils",
237    ]
238
239    subsystem_name = "distributeddatamgr"
240    part_name = "relational_store"
241  }
242}
243