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/big_integer.cpp", 22 "${relational_store_native_path}/rdb/src/cache_result_set.cpp", 23 "${relational_store_native_path}/rdb/src/connection.cpp", 24 "${relational_store_native_path}/rdb/src/connection_pool.cpp", 25 "${relational_store_native_path}/rdb/src/raw_data_parser.cpp", 26 "${relational_store_native_path}/rdb/src/rdb_helper.cpp", 27 "${relational_store_native_path}/rdb/src/rdb_local_db_observer.cpp", 28 "${relational_store_native_path}/rdb/src/rdb_predicates.cpp", 29 "${relational_store_native_path}/rdb/src/rdb_security_manager.cpp", 30 "${relational_store_native_path}/rdb/src/rdb_sql_statistic.cpp", 31 "${relational_store_native_path}/rdb/src/rdb_sql_utils.cpp", 32 "${relational_store_native_path}/rdb/src/rdb_store.cpp", 33 "${relational_store_native_path}/rdb/src/rdb_store_config.cpp", 34 "${relational_store_native_path}/rdb/src/rdb_store_impl.cpp", 35 "${relational_store_native_path}/rdb/src/rdb_store_manager.cpp", 36 "${relational_store_native_path}/rdb/src/sqlite_connection.cpp", 37 "${relational_store_native_path}/rdb/src/sqlite_global_config.cpp", 38 "${relational_store_native_path}/rdb/src/sqlite_sql_builder.cpp", 39 "${relational_store_native_path}/rdb/src/sqlite_statement.cpp", 40 "${relational_store_native_path}/rdb/src/sqlite_utils.cpp", 41 "${relational_store_native_path}/rdb/src/step_result_set.cpp", 42 "${relational_store_native_path}/rdb/src/string_utils.cpp", 43 "${relational_store_native_path}/rdb/src/trans_db.cpp", 44 "${relational_store_native_path}/rdb/src/transaction.cpp", 45 "${relational_store_native_path}/rdb/src/transaction_impl.cpp", 46 "${relational_store_native_path}/rdb/src/value_object.cpp", 47 "${relational_store_native_path}/rdb/src/values_bucket.cpp", 48 "${relational_store_native_path}/rdb/src/values_buckets.cpp", 49] 50 51if (!is_ohos) { 52 base_sources += [ 53 "${relational_store_mock_path}/frameworks/native/rdb/mock.cpp", 54 "${relational_store_native_path}/rdb/mock/src/rdb_fault_hiview_reporter.cpp", 55 ] 56} 57 58if (is_ohos && !build_ohos_sdk) { 59 config("native_rdb_config") { 60 visibility = [ ":*" ] 61 62 include_dirs = [ 63 "include", 64 "${relational_store_common_path}/include", 65 "${relational_store_native_path}/rdb/include", 66 "${relational_store_native_path}/dfx/include", 67 "${relational_store_native_path}/rdb_device_manager_adapter/include", 68 ] 69 70 defines = [ 71 "RELATIONAL_STORE", 72 "SQLITE_HAS_CODEC", 73 "RDB_TRACE_ON", 74 ] 75 76 if (relational_store_rdb_support_icu) { 77 include_dirs += [ 78 "//third_party/icu/icu4c/source", 79 "//third_party/icu/icu4c/source/i18n", 80 "//third_party/icu/icu4c/source/common", 81 ] 82 defines += [ "RDB_SUPPORT_ICU" ] 83 } 84 85 defines += [ "SQLITE_DISTRIBUTE_RELATIONAL" ] 86 include_dirs += [ 87 "${kvstore_path}/common", 88 "${kvstore_interface_path}", 89 "${distributedfile_path}/mod_securitylabel", 90 ] 91 } 92 93 config("native_rdb_public_config") { 94 visibility = [ ":*" ] 95 96 include_dirs = [ 97 "include", 98 "${relational_store_native_path}/rdb/include", 99 "${relational_store_native_path}/dfx/include", 100 "../cloud_data/include", 101 "../common_type/include", 102 ] 103 } 104 105 base_deps = [ 106 "//third_party/icu/icu4c:shared_icui18n", 107 "//third_party/icu/icu4c:shared_icuuc", 108 ] 109 110 ohos_shared_library("native_rdb") { 111 branch_protector_ret = "pac_ret" 112 sanitize = { 113 boundary_sanitize = true 114 ubsan = true 115 cfi = true 116 cfi_cross_dso = true 117 debug = false 118 } 119 120 part_name = "relational_store" 121 sources = base_sources 122 123 configs = [ ":native_rdb_config" ] 124 125 deps = base_deps 126 127 deps += [ "//third_party/sqlite:sqlite" ] 128 ldflags = [ "-Wl,--exclude-libs,ALL" ] 129 cflags_cc = [ "-fvisibility=hidden" ] 130 sources += [ 131 "${relational_store_native_path}/dfx/src/rdb_fault_hiview_reporter.cpp", 132 "${relational_store_native_path}/dfx/src/rdb_radar_reporter.cpp", 133 "${relational_store_native_path}/rdb/src/abs_shared_result_set.cpp", 134 "${relational_store_native_path}/rdb/src/delay_notify.cpp", 135 "${relational_store_native_path}/rdb/src/grd_api_manager.cpp", 136 "${relational_store_native_path}/rdb/src/rd_connection.cpp", 137 "${relational_store_native_path}/rdb/src/rd_statement.cpp", 138 "${relational_store_native_path}/rdb/src/rd_utils.cpp", 139 "${relational_store_native_path}/rdb/src/rdb_manager_impl.cpp", 140 "${relational_store_native_path}/rdb/src/rdb_notifier_stub.cpp", 141 "${relational_store_native_path}/rdb/src/rdb_service_proxy.cpp", 142 "${relational_store_native_path}/rdb/src/rdb_types_util.cpp", 143 "${relational_store_native_path}/rdb/src/result_set_proxy.cpp", 144 "${relational_store_native_path}/rdb/src/security_policy.cpp", 145 "${relational_store_native_path}/rdb/src/share_block.cpp", 146 "${relational_store_native_path}/rdb/src/shared_block_serializer_info.cpp", 147 "${relational_store_native_path}/rdb/src/sqlite_shared_result_set.cpp", 148 "${relational_store_native_path}/rdb/src/task_executor.cpp", 149 "${relational_store_native_path}/rdb_device_manager_adapter/src/rdb_device_manager_adapter.cpp", 150 ] 151 152 public_deps = [ 153 "${relational_store_innerapi_path}/appdatafwk:native_appdatafwk", 154 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 155 ] 156 157 external_deps = [ 158 "ability_base:zuri", 159 "ability_runtime:dataobs_manager", 160 "access_token:libaccesstoken_sdk", 161 "c_utils:utils", 162 "device_manager:devicemanagersdk", 163 "hilog:libhilog", 164 "hisysevent:libhisysevent", 165 "hitrace:hitrace_meter", 166 "huks:libhukssdk", 167 "ipc:ipc_core", 168 "kv_store:database_utils", 169 "kv_store:distributeddb", 170 "samgr:samgr_proxy", 171 ] 172 173 public_configs = [ ":native_rdb_public_config" ] 174 innerapi_tags = [ 175 "platformsdk", 176 "sasdk", 177 ] 178 subsystem_name = "distributeddatamgr" 179 } 180 181 ohos_static_library("native_rdb_static") { 182 branch_protector_ret = "pac_ret" 183 sanitize = { 184 boundary_sanitize = true 185 ubsan = true 186 cfi = true 187 cfi_cross_dso = true 188 debug = false 189 } 190 191 sources = base_sources 192 193 configs = [ ":native_rdb_config" ] 194 195 deps = base_deps 196 197 deps += [ "//third_party/sqlite:sqlite" ] 198 ldflags = [ "-Wl,--exclude-libs,ALL" ] 199 200 sources += [ 201 "${relational_store_native_path}/dfx/src/rdb_fault_hiview_reporter.cpp", 202 "${relational_store_native_path}/dfx/src/rdb_radar_reporter.cpp", 203 "${relational_store_native_path}/rdb/src/abs_shared_result_set.cpp", 204 "${relational_store_native_path}/rdb/src/delay_notify.cpp", 205 "${relational_store_native_path}/rdb/src/grd_api_manager.cpp", 206 "${relational_store_native_path}/rdb/src/rd_connection.cpp", 207 "${relational_store_native_path}/rdb/src/rd_statement.cpp", 208 "${relational_store_native_path}/rdb/src/rd_utils.cpp", 209 "${relational_store_native_path}/rdb/src/rdb_manager_impl.cpp", 210 "${relational_store_native_path}/rdb/src/rdb_notifier_stub.cpp", 211 "${relational_store_native_path}/rdb/src/rdb_service_proxy.cpp", 212 "${relational_store_native_path}/rdb/src/rdb_types_util.cpp", 213 "${relational_store_native_path}/rdb/src/result_set_proxy.cpp", 214 "${relational_store_native_path}/rdb/src/security_policy.cpp", 215 "${relational_store_native_path}/rdb/src/share_block.cpp", 216 "${relational_store_native_path}/rdb/src/shared_block_serializer_info.cpp", 217 "${relational_store_native_path}/rdb/src/sqlite_shared_result_set.cpp", 218 "${relational_store_native_path}/rdb/src/task_executor.cpp", 219 "${relational_store_native_path}/rdb_device_manager_adapter/src/rdb_device_manager_adapter.cpp", 220 ] 221 222 public_deps = [ 223 "${relational_store_innerapi_path}/appdatafwk:native_appdatafwk", 224 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 225 ] 226 227 external_deps = [ 228 "ability_base:zuri", 229 "ability_runtime:dataobs_manager", 230 "access_token:libaccesstoken_sdk", 231 "c_utils:utils", 232 "device_manager:devicemanagersdk", 233 "hilog:libhilog", 234 "hisysevent:libhisysevent", 235 "hitrace:hitrace_meter", 236 "huks:libhukssdk", 237 "ipc:ipc_core", 238 "kv_store:database_utils", 239 "kv_store:distributeddb", 240 "samgr:samgr_proxy", 241 ] 242 243 public_configs = [ ":native_rdb_public_config" ] 244 245 subsystem_name = "distributeddatamgr" 246 part_name = "relational_store" 247 } 248} else if (is_mingw) { 249 config("native_rdb_config") { 250 visibility = [ ":*" ] 251 252 include_dirs = [ 253 "${relational_store_mock_path}/frameworks/native/rdb", 254 "${relational_store_mock_path}/frameworks/native/win32", 255 "mock/include", 256 "${relational_store_common_path}/include", 257 "${relational_store_native_path}/rdb/mock/include", 258 "//commonlibrary/c_utils/base/include", 259 "include", 260 "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 261 "${relational_store_native_path}/rdb/include", 262 "${relational_store_native_path}/dfx/include", 263 "//third_party/libuv/src/win", 264 ] 265 266 cflags = [ "-includemock.h" ] 267 defines = [ 268 "RELATIONAL_STORE", 269 "SQLITE_HAS_CODEC", 270 ] 271 272 if (relational_store_rdb_support_icu) { 273 include_dirs += [ 274 "//third_party/icu/icu4c/source", 275 "//third_party/icu/icu4c/source/i18n", 276 "//third_party/icu/icu4c/source/common", 277 ] 278 defines += [ "RDB_SUPPORT_ICU" ] 279 } 280 281 defines += [ 282 "WINDOWS_PLATFORM", 283 "CROSS_PLATFORM", 284 ] 285 include_dirs += [ 286 "//foundation/distributeddatamgr/kv_store/frameworks/common", 287 "//third_party/sqlite/include", 288 ] 289 libs = [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib/libws2_32.a" ] 290 } 291 292 config("native_rdb_public_config") { 293 visibility = [ ":*" ] 294 295 include_dirs = [ 296 "mock/include", 297 "include", 298 "//third_party/libuv/src/win", 299 "../cloud_data/include", 300 "../common_type/include", 301 ] 302 } 303 304 base_deps = [ 305 "//third_party/icu/icu4c:shared_icui18n", 306 "//third_party/icu/icu4c:shared_icuuc", 307 ] 308 309 ohos_shared_library("native_rdb") { 310 part_name = "relational_store" 311 sources = base_sources 312 313 configs = [ ":native_rdb_config" ] 314 315 deps = base_deps 316 317 sources += [ 318 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 319 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 320 ] 321 322 deps += [ 323 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 324 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_windows", 325 "//third_party/sqlite:sqlite_sdk", 326 ] 327 328 cflags_cc = [ "-std=c++17" ] 329 330 public_configs = [ ":native_rdb_public_config" ] 331 innerapi_tags = [ "platformsdk" ] 332 subsystem_name = "distributeddatamgr" 333 } 334 335 ohos_static_library("native_rdb_static") { 336 sources = base_sources 337 338 configs = [ ":native_rdb_config" ] 339 340 deps = base_deps 341 342 sources += [ 343 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 344 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 345 ] 346 347 deps += [ 348 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 349 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_windows", 350 "//third_party/sqlite:sqlite_sdk", 351 ] 352 cflags_cc = [ "-std=c++17" ] 353 354 public_configs = [ ":native_rdb_public_config" ] 355 356 subsystem_name = "distributeddatamgr" 357 part_name = "relational_store" 358 } 359} else if (is_mac) { 360 config("native_rdb_config") { 361 visibility = [ ":*" ] 362 363 include_dirs = [ 364 "${relational_store_mock_path}/frameworks/native/rdb", 365 "mock/include", 366 "${relational_store_common_path}/include", 367 "${relational_store_native_path}/rdb/mock/include", 368 "//commonlibrary/c_utils/base/include", 369 "include", 370 "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 371 "${relational_store_native_path}/rdb/include", 372 "${relational_store_native_path}/dfx/include", 373 ] 374 375 cflags = [ "-includemock.h" ] 376 defines = [ 377 "RELATIONAL_STORE", 378 "SQLITE_HAS_CODEC", 379 ] 380 381 if (relational_store_rdb_support_icu) { 382 include_dirs += [ 383 "//third_party/icu/icu4c/source", 384 "//third_party/icu/icu4c/source/i18n", 385 "//third_party/icu/icu4c/source/common", 386 ] 387 defines += [ "RDB_SUPPORT_ICU" ] 388 } 389 390 defines += [ 391 "MAC_PLATFORM", 392 "CROSS_PLATFORM", 393 ] 394 include_dirs += [ 395 "//foundation/distributeddatamgr/kv_store/frameworks/common", 396 "//third_party/sqlite/include", 397 ] 398 } 399 400 config("native_rdb_public_config") { 401 visibility = [ ":*" ] 402 403 include_dirs = [ 404 "mock/include", 405 "include", 406 "../cloud_data/include", 407 "../common_type/include", 408 ] 409 } 410 411 base_deps = [ 412 "//third_party/icu/icu4c:shared_icui18n", 413 "//third_party/icu/icu4c:shared_icuuc", 414 ] 415 416 ohos_shared_library("native_rdb") { 417 part_name = "relational_store" 418 sources = base_sources 419 420 configs = [ ":native_rdb_config" ] 421 422 deps = base_deps 423 424 sources += [ 425 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 426 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 427 ] 428 deps += [ 429 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 430 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_mac", 431 "//third_party/sqlite:sqlite_sdk", 432 ] 433 cflags_cc = [ "-std=c++17" ] 434 435 public_configs = [ ":native_rdb_public_config" ] 436 innerapi_tags = [ "platformsdk" ] 437 subsystem_name = "distributeddatamgr" 438 } 439 440 ohos_static_library("native_rdb_static") { 441 sources = base_sources 442 443 configs = [ ":native_rdb_config" ] 444 445 deps = base_deps 446 447 sources += [ 448 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 449 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 450 ] 451 deps += [ 452 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 453 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_mac", 454 "//third_party/sqlite:sqlite_sdk", 455 ] 456 cflags_cc = [ "-std=c++17" ] 457 458 public_configs = [ ":native_rdb_public_config" ] 459 460 subsystem_name = "distributeddatamgr" 461 part_name = "relational_store" 462 } 463} else if (is_android) { 464 config("native_rdb_config") { 465 visibility = [ ":*" ] 466 467 include_dirs = [ 468 "${relational_store_mock_path}/frameworks/native/rdb", 469 "${distributedfile_path}/mod_securitylabel", 470 "${relational_store_common_path}/include", 471 "${relational_store_innerapi_path}/rdb/mock/include", 472 "${relational_store_native_path}/rdb/mock/include", 473 "${relational_store_innerapi_path}/rdb/include", 474 "${relational_store_native_path}/rdb/include", 475 "${relational_store_native_path}/dfx/include", 476 ] 477 478 cflags = [ "-includemock.h" ] 479 defines = [ 480 "RELATIONAL_STORE", 481 "SQLITE_HAS_CODEC", 482 ] 483 484 if (relational_store_rdb_support_icu) { 485 include_dirs += [ 486 "//third_party/icu/icu4c/source", 487 "//third_party/icu/icu4c/source/i18n", 488 "//third_party/icu/icu4c/source/common", 489 ] 490 defines += [ "RDB_SUPPORT_ICU" ] 491 } 492 } 493 494 config("native_rdb_public_config") { 495 visibility = [ ":*" ] 496 497 include_dirs = [ 498 "mock/include", 499 "include", 500 "${relational_store_native_path}/mock/rdb/include", 501 "${relational_store_native_path}/rdb/include", 502 "${relational_store_native_path}/dfx/include", 503 "../cloud_data/include", 504 "../common_type/include", 505 "//commonlibrary/c_utils/base/include", 506 ] 507 } 508 509 base_deps = [ "${plugins_path}/libs/icu:icu_android" ] 510 511 ohos_source_set("native_rdb") { 512 defines = [ "ANDROID_PLATFORM" ] 513 514 part_name = "relational_store" 515 516 sources = base_sources 517 518 configs = [ ":native_rdb_config" ] 519 520 deps = base_deps 521 522 sources += [ 523 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 524 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 525 "${relational_store_native_path}/rdb/src/security_policy.cpp", 526 ] 527 deps += [ 528 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 529 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_android", 530 "//third_party/sqlite:sqlite_static", 531 ] 532 cflags_cc = [ "-std=c++17" ] 533 534 public_configs = [ ":native_rdb_public_config" ] 535 subsystem_name = "distributeddatamgr" 536 } 537} else if (is_ios) { 538 config("native_rdb_config") { 539 visibility = [ ":*" ] 540 541 include_dirs = [ 542 "${relational_store_mock_path}/frameworks/native/rdb", 543 "${distributedfile_path}/mod_securitylabel", 544 "${relational_store_common_path}/include", 545 "${relational_store_innerapi_path}/rdb/mock/include", 546 "${relational_store_native_path}/rdb/mock/include", 547 "${relational_store_innerapi_path}/rdb/include", 548 "${relational_store_native_path}/rdb/include", 549 "${relational_store_native_path}/dfx/include", 550 ] 551 552 cflags = [ "-includemock.h" ] 553 defines = [ 554 "RELATIONAL_STORE", 555 "SQLITE_HAS_CODEC", 556 ] 557 558 if (relational_store_rdb_support_icu) { 559 include_dirs += [ 560 "//third_party/icu/icu4c/source", 561 "//third_party/icu/icu4c/source/i18n", 562 "//third_party/icu/icu4c/source/common", 563 ] 564 defines += [ "RDB_SUPPORT_ICU" ] 565 } 566 } 567 568 config("native_rdb_public_config") { 569 visibility = [ ":*" ] 570 571 include_dirs = [ 572 "mock/include", 573 "include", 574 "${relational_store_native_path}/rdb/include", 575 "${relational_store_native_path}/dfx/include", 576 "../cloud_data/include", 577 "../common_type/include", 578 "//commonlibrary/c_utils/base/include", 579 ] 580 } 581 582 base_deps = [ "${plugins_path}/libs/icu:icu_ios" ] 583 584 ohos_source_set("native_rdb") { 585 defines = [ 586 "IOS_PLATFORM", 587 "CROSS_PLATFORM", 588 ] 589 590 part_name = "relational_store" 591 sources = base_sources 592 593 configs = [ ":native_rdb_config" ] 594 595 deps = base_deps 596 597 sources += [ 598 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 599 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 600 "${relational_store_native_path}/rdb/src/security_policy.cpp", 601 ] 602 deps += [ 603 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 604 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_ios", 605 "//third_party/sqlite:sqlite_static", 606 ] 607 608 external_deps = [ "c_utils:utils" ] 609 610 cflags_cc = [ "-std=c++17" ] 611 612 public_configs = [ ":native_rdb_public_config" ] 613 subsystem_name = "distributeddatamgr" 614 } 615} else { 616 not_needed([ "base_sources" ]) 617} 618