191ad9d8eSopenharmony_ci# Copyright (C) 2022 Huawei Device Co., Ltd. 291ad9d8eSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 391ad9d8eSopenharmony_ci# you may not use this file except in compliance with the License. 491ad9d8eSopenharmony_ci# You may obtain a copy of the License at 591ad9d8eSopenharmony_ci# 691ad9d8eSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 791ad9d8eSopenharmony_ci# 891ad9d8eSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 991ad9d8eSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 1091ad9d8eSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1191ad9d8eSopenharmony_ci# See the License for the specific language governing permissions and 1291ad9d8eSopenharmony_ci# limitations under the License. 1391ad9d8eSopenharmony_ci 1491ad9d8eSopenharmony_ciimport("//build/ohos.gni") 1591ad9d8eSopenharmony_ci 1691ad9d8eSopenharmony_ciis_cross_platform_build = defined(is_arkui_x) && is_arkui_x 1791ad9d8eSopenharmony_ci 1891ad9d8eSopenharmony_ci# Lets callers do '#include <sqlite3.h>' 1991ad9d8eSopenharmony_ciconfig("sqlite_config") { 2091ad9d8eSopenharmony_ci include_dirs = [ "include" ] 2191ad9d8eSopenharmony_ci} 2291ad9d8eSopenharmony_ci 2391ad9d8eSopenharmony_ci# This is the configuration used to build sqlite itself. 2491ad9d8eSopenharmony_ci# It should not be needed outside of this library. 2591ad9d8eSopenharmony_ciconfig("sqlite3_private_config") { 2691ad9d8eSopenharmony_ci visibility = [ ":*" ] 2791ad9d8eSopenharmony_ci include_dirs = [ "include" ] 2891ad9d8eSopenharmony_ci} 2991ad9d8eSopenharmony_ci 3091ad9d8eSopenharmony_cigroup("libsqlite") { 3191ad9d8eSopenharmony_ci public_deps = [ ":sqlite" ] 3291ad9d8eSopenharmony_ci} 3391ad9d8eSopenharmony_ci 3491ad9d8eSopenharmony_ciohos_shared_library("sqlite") { 3591ad9d8eSopenharmony_ci branch_protector_ret = "pac_ret" 3691ad9d8eSopenharmony_ci sources = [ "src/sqlite3.c" ] 3791ad9d8eSopenharmony_ci 3891ad9d8eSopenharmony_ci defines = [ 3991ad9d8eSopenharmony_ci "NDEBUG=1", 4091ad9d8eSopenharmony_ci "HAVE_USLEEP=1", 4191ad9d8eSopenharmony_ci "SQLITE_HAVE_ISNAN", 4291ad9d8eSopenharmony_ci "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576", 4391ad9d8eSopenharmony_ci "SQLITE_THREADSAFE=2", 4491ad9d8eSopenharmony_ci "SQLITE_TEMP_STORE=3", 4591ad9d8eSopenharmony_ci "SQLITE_POWERSAFE_OVERWRITE=1", 4691ad9d8eSopenharmony_ci "SQLITE_DEFAULT_FILE_FORMAT=4", 4791ad9d8eSopenharmony_ci "SQLITE_DEFAULT_AUTOVACUUM=1", 4891ad9d8eSopenharmony_ci "SQLITE_ENABLE_MEMORY_MANAGEMENT=1", 4991ad9d8eSopenharmony_ci "SQLITE_ENABLE_FTS3", 5091ad9d8eSopenharmony_ci "SQLITE_ENABLE_FTS4", 5191ad9d8eSopenharmony_ci "SQLITE_ENABLE_FTS5", 5291ad9d8eSopenharmony_ci "SQLITE_OMIT_COMPILEOPTION_DIAGS", 5391ad9d8eSopenharmony_ci "SQLITE_DEFAULT_FILE_PERMISSIONS=0660", 5491ad9d8eSopenharmony_ci "SQLITE_SECURE_DELETE", 5591ad9d8eSopenharmony_ci "SQLITE_ENABLE_BATCH_ATOMIC_WRITE", 5691ad9d8eSopenharmony_ci "USE_PREAD64", 5791ad9d8eSopenharmony_ci "fdatasync=fdatasync", 5891ad9d8eSopenharmony_ci "HAVE_MALLOC_H=1", 5991ad9d8eSopenharmony_ci "HAVE_MALLOC_USABLE_SIZE", 6091ad9d8eSopenharmony_ci "SQLITE_DIRECT_OVERFLOW_READ", 6191ad9d8eSopenharmony_ci "SQLITE_HAS_CODEC", 6291ad9d8eSopenharmony_ci "SQLITE_EXPORT_SYMBOLS", 6391ad9d8eSopenharmony_ci "SQLITE_SHARED_BLOCK_OPTIMIZATION", 6491ad9d8eSopenharmony_ci "SQLITE_CODEC_ATTACH_CHANGED", 6591ad9d8eSopenharmony_ci "SQLITE_ENABLE_DROPTABLE_CALLBACK", 6691ad9d8eSopenharmony_ci "OPENSSL_SUPPRESS_DEPRECATED", 6791ad9d8eSopenharmony_ci "LOG_DUMP", 6891ad9d8eSopenharmony_ci "FDSAN_ENABLE", 6991ad9d8eSopenharmony_ci "HARMONY_OS", 7091ad9d8eSopenharmony_ci ] 7191ad9d8eSopenharmony_ci cflags_c = [ 7291ad9d8eSopenharmony_ci "-fvisibility=hidden", 7391ad9d8eSopenharmony_ci "-Wno-implicit-fallthrough", 7491ad9d8eSopenharmony_ci ] 7591ad9d8eSopenharmony_ci if (target_os != "ios") { 7691ad9d8eSopenharmony_ci ldflags = [ "-Wl,--exclude-libs,ALL" ] 7791ad9d8eSopenharmony_ci } 7891ad9d8eSopenharmony_ci deps = [] 7991ad9d8eSopenharmony_ci public_configs = [ ":sqlite_config" ] 8091ad9d8eSopenharmony_ci public_external_deps = [ "c_utils:utils" ] 8191ad9d8eSopenharmony_ci configs = [ ":sqlite3_private_config" ] 8291ad9d8eSopenharmony_ci innerapi_tags = [ "platformsdk_indirect" ] 8391ad9d8eSopenharmony_ci part_name = "sqlite" 8491ad9d8eSopenharmony_ci subsystem_name = "thirdparty" 8591ad9d8eSopenharmony_ci install_images = [ system_base_dir ] 8691ad9d8eSopenharmony_ci relative_install_dir = "platformsdk" 8791ad9d8eSopenharmony_ci if (is_cross_platform_build) { 8891ad9d8eSopenharmony_ci if (target_os == "ios") { 8991ad9d8eSopenharmony_ci deps += [ "//third_party/bounds_checking_function:libsec_shared" ] 9091ad9d8eSopenharmony_ci } else { 9191ad9d8eSopenharmony_ci deps += [ "//commonlibrary/c_utils/base:utils" ] 9291ad9d8eSopenharmony_ci } 9391ad9d8eSopenharmony_ci } else { 9491ad9d8eSopenharmony_ci external_deps = [ 9591ad9d8eSopenharmony_ci "c_utils:utils", 9691ad9d8eSopenharmony_ci "openssl:libcrypto_shared", 9791ad9d8eSopenharmony_ci ] 9891ad9d8eSopenharmony_ci } 9991ad9d8eSopenharmony_ci} 10091ad9d8eSopenharmony_ci 10191ad9d8eSopenharmony_ciohos_executable("sqlite3") { 10291ad9d8eSopenharmony_ci include_dirs = [ "include" ] 10391ad9d8eSopenharmony_ci sources = [ 10491ad9d8eSopenharmony_ci "src/shell.c", 10591ad9d8eSopenharmony_ci "src/sqlite3.c", 10691ad9d8eSopenharmony_ci ] 10791ad9d8eSopenharmony_ci 10891ad9d8eSopenharmony_ci defines = [ 10991ad9d8eSopenharmony_ci "NDEBUG=1", 11091ad9d8eSopenharmony_ci "HAVE_USLEEP=1", 11191ad9d8eSopenharmony_ci "SQLITE_HAVE_ISNAN", 11291ad9d8eSopenharmony_ci "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576", 11391ad9d8eSopenharmony_ci "SQLITE_THREADSAFE=2", 11491ad9d8eSopenharmony_ci "SQLITE_TEMP_STORE=3", 11591ad9d8eSopenharmony_ci "SQLITE_POWERSAFE_OVERWRITE=1", 11691ad9d8eSopenharmony_ci "SQLITE_DEFAULT_FILE_FORMAT=4", 11791ad9d8eSopenharmony_ci "SQLITE_DEFAULT_AUTOVACUUM=1", 11891ad9d8eSopenharmony_ci "SQLITE_ENABLE_MEMORY_MANAGEMENT=1", 11991ad9d8eSopenharmony_ci "SQLITE_ENABLE_FTS3", 12091ad9d8eSopenharmony_ci "SQLITE_ENABLE_FTS4", 12191ad9d8eSopenharmony_ci "SQLITE_OMIT_COMPILEOPTION_DIAGS", 12291ad9d8eSopenharmony_ci "SQLITE_DEFAULT_FILE_PERMISSIONS=0600", 12391ad9d8eSopenharmony_ci "SQLITE_SECURE_DELETE", 12491ad9d8eSopenharmony_ci "SQLITE_ENABLE_BATCH_ATOMIC_WRITE", 12591ad9d8eSopenharmony_ci "USE_PREAD64", 12691ad9d8eSopenharmony_ci "fdatasync=fdatasync", 12791ad9d8eSopenharmony_ci "SQLITE_DIRECT_OVERFLOW_READ", 12891ad9d8eSopenharmony_ci "SQLITE_SHARED_BLOCK_OPTIMIZATION", 12991ad9d8eSopenharmony_ci "OPENSSL_SUPPRESS_DEPRECATED", 13091ad9d8eSopenharmony_ci "LOG_DUMP", 13191ad9d8eSopenharmony_ci "FDSAN_ENABLE", 13291ad9d8eSopenharmony_ci "HARMONY_OS", 13391ad9d8eSopenharmony_ci ] 13491ad9d8eSopenharmony_ci 13591ad9d8eSopenharmony_ci cflags = [ 13691ad9d8eSopenharmony_ci "-Wno-error=implicit-function-declaration", 13791ad9d8eSopenharmony_ci "-Wno-implicit-fallthrough", 13891ad9d8eSopenharmony_ci ] 13991ad9d8eSopenharmony_ci} 14091ad9d8eSopenharmony_ci 14191ad9d8eSopenharmony_ciif (is_mingw || is_mac) { 14291ad9d8eSopenharmony_ci ohos_shared_library("sqlite_sdk") { 14391ad9d8eSopenharmony_ci include_dirs = [ 14491ad9d8eSopenharmony_ci "include", 14591ad9d8eSopenharmony_ci "//third_party/bounds_checking_function/include", 14691ad9d8eSopenharmony_ci "//third_party/openssl/include", 14791ad9d8eSopenharmony_ci ] 14891ad9d8eSopenharmony_ci 14991ad9d8eSopenharmony_ci sources = [ "src/sqlite3.c" ] 15091ad9d8eSopenharmony_ci 15191ad9d8eSopenharmony_ci defines = [ 15291ad9d8eSopenharmony_ci "NDEBUG=1", 15391ad9d8eSopenharmony_ci "HAVE_USLEEP=1", 15491ad9d8eSopenharmony_ci "SQLITE_HAVE_ISNAN", 15591ad9d8eSopenharmony_ci "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576", 15691ad9d8eSopenharmony_ci "SQLITE_THREADSAFE=2", 15791ad9d8eSopenharmony_ci "SQLITE_TEMP_STORE=3", 15891ad9d8eSopenharmony_ci "SQLITE_POWERSAFE_OVERWRITE=1", 15991ad9d8eSopenharmony_ci "SQLITE_DEFAULT_FILE_FORMAT=4", 16091ad9d8eSopenharmony_ci "SQLITE_DEFAULT_AUTOVACUUM=1", 16191ad9d8eSopenharmony_ci "SQLITE_ENABLE_MEMORY_MANAGEMENT=1", 16291ad9d8eSopenharmony_ci "SQLITE_ENABLE_FTS3", 16391ad9d8eSopenharmony_ci "SQLITE_ENABLE_FTS4", 16491ad9d8eSopenharmony_ci "SQLITE_OMIT_COMPILEOPTION_DIAGS", 16591ad9d8eSopenharmony_ci "SQLITE_DEFAULT_FILE_PERMISSIONS=0600", 16691ad9d8eSopenharmony_ci "SQLITE_SECURE_DELETE", 16791ad9d8eSopenharmony_ci "SQLITE_ENABLE_BATCH_ATOMIC_WRITE", 16891ad9d8eSopenharmony_ci "USE_PREAD64", 16991ad9d8eSopenharmony_ci "fdatasync=fdatasync", 17091ad9d8eSopenharmony_ci "SQLITE_DIRECT_OVERFLOW_READ", 17191ad9d8eSopenharmony_ci "SQLITE_HAS_CODEC", 17291ad9d8eSopenharmony_ci "SQLITE_EXPORT_SYMBOLS", 17391ad9d8eSopenharmony_ci "SQLITE_SHARED_BLOCK_OPTIMIZATION", 17491ad9d8eSopenharmony_ci "OPENSSL_SUPPRESS_DEPRECATED", 17591ad9d8eSopenharmony_ci ] 17691ad9d8eSopenharmony_ci remove_configs = [ "//build/config/compiler:chromium_code" ] 17791ad9d8eSopenharmony_ci deps = [ 17891ad9d8eSopenharmony_ci "//third_party/bounds_checking_function:libsec_shared", 17991ad9d8eSopenharmony_ci "//third_party/openssl:libcrypto_restool", 18091ad9d8eSopenharmony_ci ] 18191ad9d8eSopenharmony_ci if (is_mingw) { 18291ad9d8eSopenharmony_ci libs = [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib/libws2_32.a" ] 18391ad9d8eSopenharmony_ci } 18491ad9d8eSopenharmony_ci cflags = [ 18591ad9d8eSopenharmony_ci "-Wno-error=implicit-function-declaration", 18691ad9d8eSopenharmony_ci "-Wno-implicit-fallthrough", 18791ad9d8eSopenharmony_ci ] 18891ad9d8eSopenharmony_ci part_name = "sqlite" 18991ad9d8eSopenharmony_ci subsystem_name = "thirdparty" 19091ad9d8eSopenharmony_ci } 19191ad9d8eSopenharmony_ci} 19291ad9d8eSopenharmony_ci 19391ad9d8eSopenharmony_ciif (is_cross_platform_build) { 19491ad9d8eSopenharmony_ci ohos_static_library("sqlite_static") { 19591ad9d8eSopenharmony_ci visibility = [ "//foundation/distributeddatamgr/*" ] 19691ad9d8eSopenharmony_ci visibility += [ "//foundation/multimodalinput/*" ] 19791ad9d8eSopenharmony_ci visibility += 19891ad9d8eSopenharmony_ci [ "//hit/fuzzing_test/projects/multimodal_InputService_fuzzer/*" ] 19991ad9d8eSopenharmony_ci visibility += [ "//foundation/communication/*" ] 20091ad9d8eSopenharmony_ci visibility += [ "//build/common/*" ] 20191ad9d8eSopenharmony_ci visibility += [ ":*" ] 20291ad9d8eSopenharmony_ci visibility += [ "//base/security/*" ] 20391ad9d8eSopenharmony_ci visibility += [ "//third_party/libsoup/*" ] 20491ad9d8eSopenharmony_ci visibility += 20591ad9d8eSopenharmony_ci [ "//foundation/resourceschedule/resource_schedule_service/*" ] 20691ad9d8eSopenharmony_ci visibility += [ "//foundation/bundlemanager/ecological_rule_mgr/*" ] 20791ad9d8eSopenharmony_ci 20891ad9d8eSopenharmony_ci sources = [ "src/sqlite3.c" ] 20991ad9d8eSopenharmony_ci 21091ad9d8eSopenharmony_ci defines = [ 21191ad9d8eSopenharmony_ci "NDEBUG=1", 21291ad9d8eSopenharmony_ci "HAVE_USLEEP=1", 21391ad9d8eSopenharmony_ci "SQLITE_HAVE_ISNAN", 21491ad9d8eSopenharmony_ci "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576", 21591ad9d8eSopenharmony_ci "SQLITE_THREADSAFE=2", 21691ad9d8eSopenharmony_ci "SQLITE_TEMP_STORE=3", 21791ad9d8eSopenharmony_ci "SQLITE_POWERSAFE_OVERWRITE=1", 21891ad9d8eSopenharmony_ci "SQLITE_DEFAULT_FILE_FORMAT=4", 21991ad9d8eSopenharmony_ci "SQLITE_DEFAULT_AUTOVACUUM=1", 22091ad9d8eSopenharmony_ci "SQLITE_ENABLE_MEMORY_MANAGEMENT=1", 22191ad9d8eSopenharmony_ci "SQLITE_ENABLE_FTS3", 22291ad9d8eSopenharmony_ci "SQLITE_ENABLE_FTS4", 22391ad9d8eSopenharmony_ci "SQLITE_ENABLE_FTS5", 22491ad9d8eSopenharmony_ci "SQLITE_OMIT_COMPILEOPTION_DIAGS", 22591ad9d8eSopenharmony_ci "SQLITE_DEFAULT_FILE_PERMISSIONS=0660", 22691ad9d8eSopenharmony_ci "SQLITE_SECURE_DELETE", 22791ad9d8eSopenharmony_ci "SQLITE_ENABLE_BATCH_ATOMIC_WRITE", 22891ad9d8eSopenharmony_ci "USE_PREAD64", 22991ad9d8eSopenharmony_ci "fdatasync=fdatasync", 23091ad9d8eSopenharmony_ci "HAVE_MALLOC_H=1", 23191ad9d8eSopenharmony_ci "HAVE_MALLOC_USABLE_SIZE", 23291ad9d8eSopenharmony_ci "SQLITE_DIRECT_OVERFLOW_READ", 23391ad9d8eSopenharmony_ci "SQLITE_HAS_CODEC", 23491ad9d8eSopenharmony_ci "SQLITE_EXPORT_SYMBOLS", 23591ad9d8eSopenharmony_ci "SQLITE_SHARED_BLOCK_OPTIMIZATION", 23691ad9d8eSopenharmony_ci "SQLITE_CODEC_ATTACH_CHANGED", 23791ad9d8eSopenharmony_ci "SQLITE_ENABLE_DROPTABLE_CALLBACK", 23891ad9d8eSopenharmony_ci "OPENSSL_SUPPRESS_DEPRECATED", 23991ad9d8eSopenharmony_ci ] 24091ad9d8eSopenharmony_ci 24191ad9d8eSopenharmony_ci cflags_c = [ 24291ad9d8eSopenharmony_ci "-fvisibility=hidden", 24391ad9d8eSopenharmony_ci "-Wno-implicit-fallthrough", 24491ad9d8eSopenharmony_ci ] 24591ad9d8eSopenharmony_ci 24691ad9d8eSopenharmony_ci deps = [ 24791ad9d8eSopenharmony_ci "//third_party/bounds_checking_function:libsec_static", 24891ad9d8eSopenharmony_ci "//third_party/openssl:libcrypto_static", 24991ad9d8eSopenharmony_ci ] 25091ad9d8eSopenharmony_ci public_configs = [ ":sqlite_config" ] 25191ad9d8eSopenharmony_ci configs = [ ":sqlite3_private_config" ] 25291ad9d8eSopenharmony_ci part_name = "sqlite" 25391ad9d8eSopenharmony_ci subsystem_name = "thirdparty" 25491ad9d8eSopenharmony_ci } 25591ad9d8eSopenharmony_ci} 256