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