1 Star 0 Fork 0

BSCRL/wrapper_sqlite

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
build.gn 8.61 KB
一键复制 编辑 原始数据 按行查看 历史
Wangtao 提交于 2024-12-23 01:21 . 01
import("//build/ohos.gni")
import("//foundation/distributeddatamgr/relational_store/relational_store.gni")
base_sources = [
"${relational_store_native_path}/rdb/src/abs_predicates.cpp",
"${relational_store_native_path}/rdb/src/abs_rdb_predicates.cpp",
"${relational_store_native_path}/rdb/src/abs_result_set.cpp", // 数据库查询后生成的结果集的抽象,提供一系列的访问此结果集的接口
"${relational_store_native_path}/rdb/src/base_transaction.cpp", // 提供事务的基本抽象类
"${relational_store_native_path}/rdb/src/big_integer.cpp", //
"${relational_store_native_path}/rdb/src/cache_result_set.cpp",
"${relational_store_native_path}/rdb/src/connection.cpp",
"${relational_store_native_path}/rdb/src/connection_pool.cpp",
"${relational_store_native_path}/rdb/src/raw_data_parser.cpp",
"${relational_store_native_path}/rdb/src/rdb_helper.cpp",
"${relational_store_native_path}/rdb/src/rdb_local_db_observer.cpp",
"${relational_store_native_path}/rdb/src/rdb_predicates.cpp",
"${relational_store_native_path}/rdb/src/rdb_security_manager.cpp",
"${relational_store_native_path}/rdb/src/rdb_sql_statistic.cpp",
"${relational_store_native_path}/rdb/src/rdb_sql_utils.cpp",
"${relational_store_native_path}/rdb/src/rdb_store.cpp",
"${relational_store_native_path}/rdb/src/rdb_store_config.cpp",
"${relational_store_native_path}/rdb/src/rdb_store_impl.cpp", // 需要 rdb_device_manager_adapter 干啥 ?
// 看了一下代码,主要是获取分布式数据库表名,所以,这个功能暂时用不上,因为我们的应用不需要分布式能力
// 酒吧 rdb_device_manager_adapter 能力去掉
"${relational_store_native_path}/rdb/src/rdb_store_manager.cpp",
"${relational_store_native_path}/rdb/src/sqlite_connection.cpp",
"${relational_store_native_path}/rdb/src/sqlite_global_config.cpp",
"${relational_store_native_path}/rdb/src/sqlite_sql_builder.cpp",
"${relational_store_native_path}/rdb/src/sqlite_statement.cpp",
"${relational_store_native_path}/rdb/src/sqlite_utils.cpp",
"${relational_store_native_path}/rdb/src/step_result_set.cpp",
"${relational_store_native_path}/rdb/src/string_utils.cpp",
"${relational_store_native_path}/rdb/src/trans_db.cpp",
"${relational_store_native_path}/rdb/src/transaction.cpp",
"${relational_store_native_path}/rdb/src/transaction_impl.cpp",
"${relational_store_native_path}/rdb/src/value_object.cpp",
"${relational_store_native_path}/rdb/src/values_bucket.cpp",
"${relational_store_native_path}/rdb/src/values_buckets.cpp",
]
if (is_ohos && !build_ohos_sdk) {
config("native_rdb_config") {
visibility = [ ":*" ]
include_dirs = [
"include",
"${relational_store_common_path}/include",
"${relational_store_native_path}/rdb/include",
// "${relational_store_native_path}/dfx/include",
// "${relational_store_native_path}/rdb_device_manager_adapter/include",
]
defines = [
"RELATIONAL_STORE",
"SQLITE_HAS_CODEC",
"RDB_TRACE_ON",
]
}
config("native_rdb_public_config") {
visibility = [ ":*" ]
include_dirs = [
"include",
"${relational_store_native_path}/rdb/include",
// "${relational_store_native_path}/dfx/include",
"../cloud_data/include",
"../common_type/include",
]
}
ohos_shared_library("native_rdb") {
branch_protector_ret = "pac_ret"
sanitize = {
boundary_sanitize = true
ubsan = true
cfi = true
cfi_cross_dso = true
debug = false
}
part_name = "relational_store" # part_name是用于指定构建目标所属的组件或模块名称的字段
sources = base_sources
configs = [ ":native_rdb_config" ]
deps += [ "//third_party/sqlite:sqlite" ] # 以来sqlite三方库
# 在GN构建系统中,ldflags和cflags_cc是用于指定编译和链接选项的字段
# 它们分别用于设置链接器(ld)和C++编译器的参数。
# ldflags:用于指定链接器的选项。-Wl是GCC编译器的一个选项,用于将后面的参数传递给链接器。
# --exclude-libs,ALL:这是链接器的一个选项,用于指定在链接过程中排除某些库的符号。
# --exclude-libs:告诉链接器在链接时不要从指定的库中提取符号。
# ALL:表示排除所有库中的符号。这意味着链接器不会从任何库中提取符号,除非这些符号被显式地引用。
# 作用:使用--exclude-libs,ALL可以减少最终生成的可执行文件或库文件的大小,
# 因为它避免了从库中包含不必要的符号。这在某些情况下可以提高程序的启动速度和运行效率,
# 尤其是在动态链接库时,可以减少动态链接的开销。
ldflags = [ "-Wl,--exclude-libs,ALL" ]
# cflags_cc:用于指定C++编译器的选项。这些选项会影响C++代码的编译过程
# -fvisibility=hidden:这是GCC编译器的一个选项,用于控制符号的可见性。
# -fvisibility:指定符号的默认可见性。符号可见性决定了符号是否可以在其他共享库或可执行文件中被访问。
# hidden:将符号的默认可见性设置为隐藏。这意味着除非显式地声明为可见(如使用__attribute__((visibility("default")))),
# 否则所有符号都不会被导出到共享库的符号表中。
cflags_cc = [ "-fvisibility=hidden" ]
sources += [
// "${relational_store_native_path}/dfx/src/rdb_fault_hiview_reporter.cpp",
// "${relational_store_native_path}/dfx/src/rdb_radar_reporter.cpp",
"${relational_store_native_path}/rdb/src/abs_shared_result_set.cpp",
"${relational_store_native_path}/rdb/src/delay_notify.cpp",
"${relational_store_native_path}/rdb/src/grd_api_manager.cpp",
"${relational_store_native_path}/rdb/src/rd_connection.cpp",
"${relational_store_native_path}/rdb/src/rd_statement.cpp",
"${relational_store_native_path}/rdb/src/rd_utils.cpp",
"${relational_store_native_path}/rdb/src/rdb_manager_impl.cpp",
"${relational_store_native_path}/rdb/src/rdb_notifier_stub.cpp",
"${relational_store_native_path}/rdb/src/rdb_service_proxy.cpp",
"${relational_store_native_path}/rdb/src/rdb_types_util.cpp",
"${relational_store_native_path}/rdb/src/result_set_proxy.cpp",
"${relational_store_native_path}/rdb/src/security_policy.cpp",
"${relational_store_native_path}/rdb/src/share_block.cpp",
"${relational_store_native_path}/rdb/src/shared_block_serializer_info.cpp",
"${relational_store_native_path}/rdb/src/sqlite_shared_result_set.cpp",
"${relational_store_native_path}/rdb/src/task_executor.cpp",
// "${relational_store_native_path}/rdb_device_manager_adapter/src/rdb_device_manager_adapter.cpp",
]
public_deps = [
"${relational_store_innerapi_path}/appdatafwk:native_appdatafwk",
"${relational_store_innerapi_path}/appdatafwk:relational_common_base",
]
external_deps = [
"ability_base:zuri",
"ability_runtime:dataobs_manager",
"access_token:libaccesstoken_sdk",
"c_utils:utils",
"device_manager:devicemanagersdk",
"hilog:libhilog",
"hisysevent:libhisysevent",
"hitrace:hitrace_meter",
"huks:libhukssdk",
"ipc:ipc_core",
"kv_store:database_utils",
"kv_store:distributeddb",
"samgr:samgr_proxy",
]
public_configs = [ ":native_rdb_public_config" ]
# innerapi_tags 字段用于为构建目标指定一组内部API标签。
# 这些标签通常用于描述和分类构建目标所暴露的API的性质和用途,以便在构建和分发过程中进行适当的处理和管理。
/*
API分类:通过为构建目标指定不同的API标签,可以将其API分类为不同的类别。例如,"platformsdk"可能表示该构建目标是平台软件开发工具包(Platform SDK)的一部分,而"sasdk"可能表示它是服务应用软件开发工具包(Service App SDK)的一部分。
构建和分发控制:在构建和分发过程中,可以根据这些标签对构建目标进行不同的处理。例如,某些构建系统可能会根据标签决定是否将构建目标包含在特定的软件包或分发版本中。
权限和访问控制:在某些情况下,API标签还可以用于控制对构建目标API的访问权限。例如,某些API可能仅限于特定类型的开发者或应用使用,而其他API则可以公开给所有开发者。
*/
innerapi_tags = [
"platformsdk",
"sasdk",
]
subsystem_name = "distributeddatamgr"
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/bscrl/wrapper_sqlite.git
[email protected]:bscrl/wrapper_sqlite.git
bscrl
wrapper_sqlite
wrapper_sqlite
master

搜索帮助