1# Copyright (c) 2021 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("//foundation/distributeddatamgr/relational_store/relational_store.gni") 15 16base_sources = [ 17 "${relational_store_native_path}/rdb/src/abs_predicates.cpp", 18 "${relational_store_native_path}/rdb/src/abs_rdb_predicates.cpp", 19 "${relational_store_native_path}/rdb/src/abs_result_set.cpp", 20 "${relational_store_native_path}/rdb/src/base_transaction.cpp", 21 "${relational_store_native_path}/rdb/src/base_transaction.h", 22 "${relational_store_native_path}/rdb/src/raw_data_parser.cpp", 23 "${relational_store_native_path}/rdb/src/rdb_helper.cpp", 24 "${relational_store_native_path}/rdb/src/rdb_predicates.cpp", 25 "${relational_store_native_path}/rdb/src/rdb_sql_utils.cpp", 26 "${relational_store_native_path}/rdb/src/rdb_store_config.cpp", 27 "${relational_store_native_path}/rdb/src/rdb_store_impl.cpp", 28 "${relational_store_native_path}/rdb/src/rdb_store_manager.cpp", 29 "${relational_store_native_path}/rdb/src/sqlite_connection.cpp", 30 "${relational_store_native_path}/rdb/src/sqlite_connection_pool.cpp", 31 "${relational_store_native_path}/rdb/src/sqlite_global_config.cpp", 32 "${relational_store_native_path}/rdb/src/sqlite_sql_builder.cpp", 33 "${relational_store_native_path}/rdb/src/sqlite_statement.cpp", 34 "${relational_store_native_path}/rdb/src/sqlite_utils.cpp", 35 "${relational_store_native_path}/rdb/src/step_result_set.cpp", 36 "${relational_store_native_path}/rdb/src/string_utils.cpp", 37 "${relational_store_native_path}/rdb/src/value_object.cpp", 38 "${relational_store_native_path}/rdb/src/values_bucket.cpp", 39] 40 41if (is_ohos && !build_ohos_sdk) { 42 config("native_rdb_config") { 43 visibility = [ ":*" ] 44 45 include_dirs = [ 46 "include", 47 "${relational_store_common_path}/include", 48 "${relational_store_native_path}/rdb/include", 49 "${relational_store_native_path}/rdb_device_manager_adapter/include", 50 ] 51 52 defines = [ 53 "RELATIONAL_STORE", 54 "SQLITE_HAS_CODEC", 55 ] 56 57 if (relational_store_rdb_support_icu) { 58 include_dirs += [ 59 "//third_party/icu/icu4c/source", 60 "//third_party/icu/icu4c/source/i18n", 61 "//third_party/icu/icu4c/source/common", 62 ] 63 defines += [ "RDB_SUPPORT_ICU" ] 64 } 65 66 defines += [ "SQLITE_DISTRIBUTE_RELATIONAL" ] 67 include_dirs += [ 68 "${kvstore_path}/common", 69 "${distributedfile_path}/mod_securitylabel", 70 ] 71 } 72 73 config("native_rdb_public_config") { 74 visibility = [ ":*" ] 75 76 include_dirs = [ 77 "include", 78 "${relational_store_native_path}/rdb/include", 79 ] 80 } 81 82 base_deps = [ 83 "//third_party/icu/icu4c:shared_icui18n", 84 "//third_party/icu/icu4c:shared_icuuc", 85 ] 86 87 ohos_shared_library("native_rdb") { 88 part_name = "relational_store" 89 sources = base_sources 90 91 configs = [ ":native_rdb_config" ] 92 93 deps = base_deps 94 95 deps += [ "//third_party/sqlite:sqlite" ] 96 ldflags = [ "-Wl,--exclude-libs,ALL" ] 97 cflags_cc = [ "-fvisibility=hidden" ] 98 99 sources += [ 100 "${relational_store_native_path}/rdb/src/abs_shared_result_set.cpp", 101 "${relational_store_native_path}/rdb/src/rdb_manager_impl.cpp", 102 "${relational_store_native_path}/rdb/src/rdb_notifier_stub.cpp", 103 "${relational_store_native_path}/rdb/src/rdb_security_manager.cpp", 104 "${relational_store_native_path}/rdb/src/rdb_service_proxy.cpp", 105 "${relational_store_native_path}/rdb/src/rdb_types_util.cpp", 106 "${relational_store_native_path}/rdb/src/result_set_proxy.cpp", 107 "${relational_store_native_path}/rdb/src/security_policy.cpp", 108 "${relational_store_native_path}/rdb/src/share_block.cpp", 109 "${relational_store_native_path}/rdb/src/shared_block_serializer_info.cpp", 110 "${relational_store_native_path}/rdb/src/sqlite_shared_result_set.cpp", 111 "${relational_store_native_path}/rdb/src/task_executor.cpp", 112 "${relational_store_native_path}/rdb_device_manager_adapter/src/rdb_device_manager_adapter.cpp", 113 ] 114 115 public_deps = [ 116 "${relational_store_innerapi_path}/appdatafwk:native_appdatafwk", 117 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 118 ] 119 120 external_deps = [ 121 "ability_base:zuri", 122 "ability_runtime:dataobs_manager", 123 "c_utils:utils", 124 "device_manager:devicemanagersdk", 125 "hilog:libhilog", 126 "hitrace:hitrace_meter", 127 "huks:libhukssdk", 128 "ipc:ipc_core", 129 "kv_store:distributeddb", 130 "samgr:samgr_proxy", 131 ] 132 133 public_configs = [ ":native_rdb_public_config" ] 134 innerapi_tags = [ "platformsdk" ] 135 subsystem_name = "distributeddatamgr" 136 } 137 138 ohos_static_library("native_rdb_static") { 139 sources = base_sources 140 141 configs = [ ":native_rdb_config" ] 142 143 deps = base_deps 144 145 deps += [ "//third_party/sqlite:sqlite" ] 146 ldflags = [ "-Wl,--exclude-libs,ALL" ] 147 148 sources += [ 149 "${relational_store_native_path}/rdb/src/abs_shared_result_set.cpp", 150 "${relational_store_native_path}/rdb/src/rdb_manager_impl.cpp", 151 "${relational_store_native_path}/rdb/src/rdb_notifier_stub.cpp", 152 "${relational_store_native_path}/rdb/src/rdb_security_manager.cpp", 153 "${relational_store_native_path}/rdb/src/rdb_service_proxy.cpp", 154 "${relational_store_native_path}/rdb/src/rdb_types_util.cpp", 155 "${relational_store_native_path}/rdb/src/result_set_proxy.cpp", 156 "${relational_store_native_path}/rdb/src/security_policy.cpp", 157 "${relational_store_native_path}/rdb/src/share_block.cpp", 158 "${relational_store_native_path}/rdb/src/shared_block_serializer_info.cpp", 159 "${relational_store_native_path}/rdb/src/sqlite_shared_result_set.cpp", 160 "${relational_store_native_path}/rdb/src/task_executor.cpp", 161 "${relational_store_native_path}/rdb_device_manager_adapter/src/rdb_device_manager_adapter.cpp", 162 ] 163 164 public_deps = [ 165 "${relational_store_innerapi_path}/appdatafwk:native_appdatafwk", 166 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 167 ] 168 169 external_deps = [ 170 "ability_base:zuri", 171 "ability_runtime:dataobs_manager", 172 "c_utils:utils", 173 "device_manager:devicemanagersdk", 174 "hilog:libhilog", 175 "hitrace:hitrace_meter", 176 "huks:libhukssdk", 177 "ipc:ipc_core", 178 "kv_store:distributeddb", 179 "samgr:samgr_proxy", 180 ] 181 182 public_configs = [ ":native_rdb_public_config" ] 183 184 subsystem_name = "distributeddatamgr" 185 part_name = "relational_store" 186 } 187} else if (is_mingw) { 188 config("native_rdb_config") { 189 visibility = [ ":*" ] 190 191 include_dirs = [ 192 "mock/include", 193 "${relational_store_common_path}/include", 194 "${relational_store_native_path}/rdb/mock/include", 195 "//commonlibrary/c_utils/base/include", 196 "include", 197 "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 198 "${relational_store_native_path}/rdb/include", 199 "//third_party/libuv/src/win", 200 ] 201 202 defines = [ 203 "RELATIONAL_STORE", 204 "SQLITE_HAS_CODEC", 205 ] 206 207 if (relational_store_rdb_support_icu) { 208 include_dirs += [ 209 "//third_party/icu/icu4c/source", 210 "//third_party/icu/icu4c/source/i18n", 211 "//third_party/icu/icu4c/source/common", 212 ] 213 defines += [ "RDB_SUPPORT_ICU" ] 214 } 215 216 defines += [ "WINDOWS_PLATFORM" ] 217 include_dirs += [ 218 "//foundation/distributeddatamgr/kv_store/frameworks/common", 219 "//third_party/sqlite/include", 220 ] 221 libs = [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib/libws2_32.a" ] 222 } 223 224 config("native_rdb_public_config") { 225 visibility = [ ":*" ] 226 227 include_dirs = [ 228 "mock/include", 229 "include", 230 "//third_party/libuv/src/win", 231 ] 232 } 233 234 base_deps = [ 235 "//third_party/icu/icu4c:shared_icui18n", 236 "//third_party/icu/icu4c:shared_icuuc", 237 ] 238 239 ohos_shared_library("native_rdb") { 240 part_name = "relational_store" 241 sources = base_sources 242 243 configs = [ ":native_rdb_config" ] 244 245 deps = base_deps 246 247 sources += 248 [ "${relational_store_native_path}/rdb/mock/src/task_executor.cpp" ] 249 250 deps += [ 251 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 252 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_windows", 253 "//third_party/sqlite:sqlite_sdk", 254 ] 255 cflags_cc = [ "-std=c++17" ] 256 257 public_configs = [ ":native_rdb_public_config" ] 258 innerapi_tags = [ "platformsdk" ] 259 subsystem_name = "distributeddatamgr" 260 } 261 262 ohos_static_library("native_rdb_static") { 263 sources = base_sources 264 265 configs = [ ":native_rdb_config" ] 266 267 deps = base_deps 268 269 sources += 270 [ "${relational_store_native_path}/rdb/mock/src/task_executor.cpp" ] 271 272 deps += [ 273 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 274 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_windows", 275 "//third_party/sqlite:sqlite_sdk", 276 ] 277 cflags_cc = [ "-std=c++17" ] 278 279 public_configs = [ ":native_rdb_public_config" ] 280 281 subsystem_name = "distributeddatamgr" 282 part_name = "relational_store" 283 } 284} else if (is_mac) { 285 config("native_rdb_config") { 286 visibility = [ ":*" ] 287 288 include_dirs = [ 289 "mock/include", 290 "${relational_store_common_path}/include", 291 "${relational_store_native_path}/rdb/mock/include", 292 "//commonlibrary/c_utils/base/include", 293 "include", 294 "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 295 "${relational_store_native_path}/rdb/include", 296 ] 297 298 defines = [ 299 "RELATIONAL_STORE", 300 "SQLITE_HAS_CODEC", 301 ] 302 303 if (relational_store_rdb_support_icu) { 304 include_dirs += [ 305 "//third_party/icu/icu4c/source", 306 "//third_party/icu/icu4c/source/i18n", 307 "//third_party/icu/icu4c/source/common", 308 ] 309 defines += [ "RDB_SUPPORT_ICU" ] 310 } 311 312 defines += [ "MAC_PLATFORM" ] 313 include_dirs += [ 314 "//foundation/distributeddatamgr/kv_store/frameworks/common", 315 "//third_party/sqlite/include", 316 ] 317 } 318 319 config("native_rdb_public_config") { 320 visibility = [ ":*" ] 321 322 include_dirs = [ 323 "mock/include", 324 "include", 325 ] 326 } 327 328 base_deps = [ 329 "//third_party/icu/icu4c:shared_icui18n", 330 "//third_party/icu/icu4c:shared_icuuc", 331 ] 332 333 ohos_shared_library("native_rdb") { 334 part_name = "relational_store" 335 sources = base_sources 336 337 configs = [ ":native_rdb_config" ] 338 339 deps = base_deps 340 341 sources += 342 [ "${relational_store_native_path}/rdb/mock/src/task_executor.cpp" ] 343 deps += [ 344 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 345 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_mac", 346 "//third_party/sqlite:sqlite_sdk", 347 ] 348 cflags_cc = [ "-std=c++17" ] 349 350 public_configs = [ ":native_rdb_public_config" ] 351 innerapi_tags = [ "platformsdk" ] 352 subsystem_name = "distributeddatamgr" 353 } 354 355 ohos_static_library("native_rdb_static") { 356 sources = base_sources 357 358 configs = [ ":native_rdb_config" ] 359 360 deps = base_deps 361 362 sources += 363 [ "${relational_store_native_path}/rdb/mock/src/task_executor.cpp" ] 364 deps += [ 365 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 366 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_mac", 367 "//third_party/sqlite:sqlite_sdk", 368 ] 369 cflags_cc = [ "-std=c++17" ] 370 371 public_configs = [ ":native_rdb_public_config" ] 372 373 subsystem_name = "distributeddatamgr" 374 part_name = "relational_store" 375 } 376} else if (is_android) { 377 config("native_rdb_config") { 378 visibility = [ ":*" ] 379 380 include_dirs = [ 381 "${distributedfile_path}/mod_securitylabel", 382 "${relational_store_common_path}/include", 383 "${relational_store_innerapi_path}/rdb/mock/include", 384 "${relational_store_native_path}/rdb/mock/include", 385 "${relational_store_innerapi_path}/rdb/include", 386 "${relational_store_native_path}/rdb/include", 387 ] 388 389 defines = [ 390 "RELATIONAL_STORE", 391 "SQLITE_HAS_CODEC", 392 ] 393 394 if (relational_store_rdb_support_icu) { 395 include_dirs += [ 396 "//third_party/icu/icu4c/source", 397 "//third_party/icu/icu4c/source/i18n", 398 "//third_party/icu/icu4c/source/common", 399 ] 400 defines += [ "RDB_SUPPORT_ICU" ] 401 } 402 } 403 404 config("native_rdb_public_config") { 405 visibility = [ ":*" ] 406 407 include_dirs = [ 408 "mock/include", 409 "include", 410 "${relational_store_native_path}/mock/rdb/include", 411 "${relational_store_native_path}/rdb/include", 412 ] 413 } 414 415 base_deps = [ "//third_party/icu/icu4c:shared_icuuc" ] 416 417 ohos_source_set("native_rdb") { 418 defines = [ "ANDROID_PLATFORM" ] 419 420 part_name = "relational_store" 421 422 sources = base_sources 423 424 configs = [ ":native_rdb_config" ] 425 426 deps = base_deps 427 428 sources += [ 429 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 430 "${relational_store_native_path}/rdb/src/security_policy.cpp", 431 ] 432 deps += [ 433 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 434 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_android", 435 "//commonlibrary/c_utils/base:utils", 436 "//third_party/sqlite:sqlite_static", 437 ] 438 cflags_cc = [ "-std=c++17" ] 439 440 public_configs = [ ":native_rdb_public_config" ] 441 subsystem_name = "distributeddatamgr" 442 } 443} else if (is_ios) { 444 config("native_rdb_config") { 445 visibility = [ ":*" ] 446 447 include_dirs = [ 448 "${distributedfile_path}/mod_securitylabel", 449 "${relational_store_common_path}/include", 450 "${relational_store_innerapi_path}/rdb/mock/include", 451 "${relational_store_native_path}/rdb/mock/include", 452 "${relational_store_innerapi_path}/rdb/include", 453 "${relational_store_native_path}/rdb/include", 454 ] 455 456 defines = [ 457 "RELATIONAL_STORE", 458 "SQLITE_HAS_CODEC", 459 ] 460 461 if (relational_store_rdb_support_icu) { 462 include_dirs += [ 463 "//third_party/icu/icu4c/source", 464 "//third_party/icu/icu4c/source/i18n", 465 "//third_party/icu/icu4c/source/common", 466 ] 467 defines += [ "RDB_SUPPORT_ICU" ] 468 } 469 } 470 471 config("native_rdb_public_config") { 472 visibility = [ ":*" ] 473 474 include_dirs = [ 475 "mock/include", 476 "include", 477 "${relational_store_native_path}/rdb/include", 478 ] 479 } 480 481 base_deps = [ 482 "//third_party/icu/icu4c:static_icui18n", 483 "//third_party/icu/icu4c:static_icuuc", 484 ] 485 486 ohos_source_set("native_rdb") { 487 defines = [ "IOS_PLATFORM" ] 488 489 part_name = "relational_store" 490 sources = base_sources 491 492 configs = [ ":native_rdb_config" ] 493 494 deps = base_deps 495 496 sources += [ 497 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 498 "${relational_store_native_path}/rdb/src/security_policy.cpp", 499 ] 500 deps += [ 501 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 502 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_ios", 503 "//commonlibrary/c_utils/base:utilsbase", 504 "//third_party/sqlite:sqlite_static", 505 ] 506 cflags_cc = [ "-std=c++17" ] 507 508 public_configs = [ ":native_rdb_public_config" ] 509 subsystem_name = "distributeddatamgr" 510 } 511} else { 512 not_needed([ "base_sources" ]) 513} 514