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 "mock/include", 255 "${relational_store_common_path}/include", 256 "${relational_store_native_path}/rdb/mock/include", 257 "//commonlibrary/c_utils/base/include", 258 "include", 259 "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 260 "${relational_store_native_path}/rdb/include", 261 "${relational_store_native_path}/dfx/include", 262 "//third_party/libuv/src/win", 263 ] 264 265 cflags = [ "-includemock.h" ] 266 defines = [ 267 "RELATIONAL_STORE", 268 "SQLITE_HAS_CODEC", 269 ] 270 271 if (relational_store_rdb_support_icu) { 272 include_dirs += [ 273 "//third_party/icu/icu4c/source", 274 "//third_party/icu/icu4c/source/i18n", 275 "//third_party/icu/icu4c/source/common", 276 ] 277 defines += [ "RDB_SUPPORT_ICU" ] 278 } 279 280 defines += [ "WINDOWS_PLATFORM" ] 281 include_dirs += [ 282 "//foundation/distributeddatamgr/kv_store/frameworks/common", 283 "//third_party/sqlite/include", 284 ] 285 libs = [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib/libws2_32.a" ] 286 } 287 288 config("native_rdb_public_config") { 289 visibility = [ ":*" ] 290 291 include_dirs = [ 292 "mock/include", 293 "include", 294 "//third_party/libuv/src/win", 295 "../cloud_data/include", 296 "../common_type/include", 297 ] 298 } 299 300 base_deps = [ 301 "//third_party/icu/icu4c:shared_icui18n", 302 "//third_party/icu/icu4c:shared_icuuc", 303 ] 304 305 ohos_shared_library("native_rdb") { 306 part_name = "relational_store" 307 sources = base_sources 308 309 configs = [ ":native_rdb_config" ] 310 311 deps = base_deps 312 313 sources += [ 314 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 315 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 316 ] 317 318 deps += [ 319 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 320 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_windows", 321 "//third_party/sqlite:sqlite_sdk", 322 ] 323 324 cflags_cc = [ "-std=c++17" ] 325 326 public_configs = [ ":native_rdb_public_config" ] 327 innerapi_tags = [ "platformsdk" ] 328 subsystem_name = "distributeddatamgr" 329 } 330 331 ohos_static_library("native_rdb_static") { 332 sources = base_sources 333 334 configs = [ ":native_rdb_config" ] 335 336 deps = base_deps 337 338 sources += [ 339 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 340 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 341 ] 342 343 deps += [ 344 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 345 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_windows", 346 "//third_party/sqlite:sqlite_sdk", 347 ] 348 cflags_cc = [ "-std=c++17" ] 349 350 public_configs = [ ":native_rdb_public_config" ] 351 352 subsystem_name = "distributeddatamgr" 353 part_name = "relational_store" 354 } 355} else if (is_mac) { 356 config("native_rdb_config") { 357 visibility = [ ":*" ] 358 359 include_dirs = [ 360 "${relational_store_mock_path}/frameworks/native/rdb", 361 "mock/include", 362 "${relational_store_common_path}/include", 363 "${relational_store_native_path}/rdb/mock/include", 364 "//commonlibrary/c_utils/base/include", 365 "include", 366 "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", 367 "${relational_store_native_path}/rdb/include", 368 "${relational_store_native_path}/dfx/include", 369 ] 370 371 cflags = [ "-includemock.h" ] 372 defines = [ 373 "RELATIONAL_STORE", 374 "SQLITE_HAS_CODEC", 375 ] 376 377 if (relational_store_rdb_support_icu) { 378 include_dirs += [ 379 "//third_party/icu/icu4c/source", 380 "//third_party/icu/icu4c/source/i18n", 381 "//third_party/icu/icu4c/source/common", 382 ] 383 defines += [ "RDB_SUPPORT_ICU" ] 384 } 385 386 defines += [ "MAC_PLATFORM" ] 387 include_dirs += [ 388 "//foundation/distributeddatamgr/kv_store/frameworks/common", 389 "//third_party/sqlite/include", 390 ] 391 } 392 393 config("native_rdb_public_config") { 394 visibility = [ ":*" ] 395 396 include_dirs = [ 397 "mock/include", 398 "include", 399 "../cloud_data/include", 400 "../common_type/include", 401 ] 402 } 403 404 base_deps = [ 405 "//third_party/icu/icu4c:shared_icui18n", 406 "//third_party/icu/icu4c:shared_icuuc", 407 ] 408 409 ohos_shared_library("native_rdb") { 410 part_name = "relational_store" 411 sources = base_sources 412 413 configs = [ ":native_rdb_config" ] 414 415 deps = base_deps 416 417 sources += [ 418 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 419 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 420 ] 421 deps += [ 422 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 423 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_mac", 424 "//third_party/sqlite:sqlite_sdk", 425 ] 426 cflags_cc = [ "-std=c++17" ] 427 428 public_configs = [ ":native_rdb_public_config" ] 429 innerapi_tags = [ "platformsdk" ] 430 subsystem_name = "distributeddatamgr" 431 } 432 433 ohos_static_library("native_rdb_static") { 434 sources = base_sources 435 436 configs = [ ":native_rdb_config" ] 437 438 deps = base_deps 439 440 sources += [ 441 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 442 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 443 ] 444 deps += [ 445 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 446 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_mac", 447 "//third_party/sqlite:sqlite_sdk", 448 ] 449 cflags_cc = [ "-std=c++17" ] 450 451 public_configs = [ ":native_rdb_public_config" ] 452 453 subsystem_name = "distributeddatamgr" 454 part_name = "relational_store" 455 } 456} else if (is_android) { 457 config("native_rdb_config") { 458 visibility = [ ":*" ] 459 460 include_dirs = [ 461 "${relational_store_mock_path}/frameworks/native/rdb", 462 "${distributedfile_path}/mod_securitylabel", 463 "${relational_store_common_path}/include", 464 "${relational_store_innerapi_path}/rdb/mock/include", 465 "${relational_store_native_path}/rdb/mock/include", 466 "${relational_store_innerapi_path}/rdb/include", 467 "${relational_store_native_path}/rdb/include", 468 "${relational_store_native_path}/dfx/include", 469 ] 470 471 cflags = [ "-includemock.h" ] 472 defines = [ 473 "RELATIONAL_STORE", 474 "SQLITE_HAS_CODEC", 475 ] 476 477 if (relational_store_rdb_support_icu) { 478 include_dirs += [ 479 "//third_party/icu/icu4c/source", 480 "//third_party/icu/icu4c/source/i18n", 481 "//third_party/icu/icu4c/source/common", 482 ] 483 defines += [ "RDB_SUPPORT_ICU" ] 484 } 485 } 486 487 config("native_rdb_public_config") { 488 visibility = [ ":*" ] 489 490 include_dirs = [ 491 "mock/include", 492 "include", 493 "${relational_store_native_path}/mock/rdb/include", 494 "${relational_store_native_path}/rdb/include", 495 "${relational_store_native_path}/dfx/include", 496 "../cloud_data/include", 497 "../common_type/include", 498 "//commonlibrary/c_utils/base/include", 499 ] 500 } 501 502 base_deps = [ "${plugins_path}/libs/icu:icu_android" ] 503 504 ohos_source_set("native_rdb") { 505 defines = [ "ANDROID_PLATFORM" ] 506 507 part_name = "relational_store" 508 509 sources = base_sources 510 511 configs = [ ":native_rdb_config" ] 512 513 deps = base_deps 514 515 sources += [ 516 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 517 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 518 "${relational_store_native_path}/rdb/src/security_policy.cpp", 519 ] 520 deps += [ 521 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 522 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_android", 523 "//third_party/sqlite:sqlite_static", 524 ] 525 cflags_cc = [ "-std=c++17" ] 526 527 public_configs = [ ":native_rdb_public_config" ] 528 subsystem_name = "distributeddatamgr" 529 } 530} else if (is_ios) { 531 config("native_rdb_config") { 532 visibility = [ ":*" ] 533 534 include_dirs = [ 535 "${relational_store_mock_path}/frameworks/native/rdb", 536 "${distributedfile_path}/mod_securitylabel", 537 "${relational_store_common_path}/include", 538 "${relational_store_innerapi_path}/rdb/mock/include", 539 "${relational_store_native_path}/rdb/mock/include", 540 "${relational_store_innerapi_path}/rdb/include", 541 "${relational_store_native_path}/rdb/include", 542 "${relational_store_native_path}/dfx/include", 543 ] 544 545 cflags = [ "-includemock.h" ] 546 defines = [ 547 "RELATIONAL_STORE", 548 "SQLITE_HAS_CODEC", 549 ] 550 551 if (relational_store_rdb_support_icu) { 552 include_dirs += [ 553 "//third_party/icu/icu4c/source", 554 "//third_party/icu/icu4c/source/i18n", 555 "//third_party/icu/icu4c/source/common", 556 ] 557 defines += [ "RDB_SUPPORT_ICU" ] 558 } 559 } 560 561 config("native_rdb_public_config") { 562 visibility = [ ":*" ] 563 564 include_dirs = [ 565 "mock/include", 566 "include", 567 "${relational_store_native_path}/rdb/include", 568 "${relational_store_native_path}/dfx/include", 569 "../cloud_data/include", 570 "../common_type/include", 571 "//commonlibrary/c_utils/base/include", 572 ] 573 } 574 575 base_deps = [ "${plugins_path}/libs/icu:icu_ios" ] 576 577 ohos_source_set("native_rdb") { 578 defines = [ "IOS_PLATFORM" ] 579 580 part_name = "relational_store" 581 sources = base_sources 582 583 configs = [ ":native_rdb_config" ] 584 585 deps = base_deps 586 587 sources += [ 588 "${relational_store_native_path}/rdb/mock/src/rdb_radar_reporter.cpp", 589 "${relational_store_native_path}/rdb/mock/src/task_executor.cpp", 590 "${relational_store_native_path}/rdb/src/security_policy.cpp", 591 ] 592 deps += [ 593 "${relational_store_innerapi_path}/appdatafwk:relational_common_base", 594 "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog_ios", 595 "//third_party/sqlite:sqlite_static", 596 ] 597 598 external_deps = [ "c_utils:utils" ] 599 600 cflags_cc = [ "-std=c++17" ] 601 602 public_configs = [ ":native_rdb_public_config" ] 603 subsystem_name = "distributeddatamgr" 604 } 605} else { 606 not_needed([ "base_sources" ]) 607} 608