• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2022 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.
13
14import("//build/ohos.gni")
15
16is_cross_platform_build = defined(is_arkui_x) && is_arkui_x
17
18# Lets callers do '#include <sqlite3.h>'
19config("sqlite_config") {
20  include_dirs = [ "include" ]
21}
22
23# This is the configuration used to build sqlite itself.
24# It should not be needed outside of this library.
25config("sqlite3_private_config") {
26  visibility = [ ":*" ]
27  include_dirs = [ "include" ]
28}
29
30group("libsqlite") {
31  public_deps = [ ":sqlite" ]
32}
33
34ohos_shared_library("sqlite") {
35  visibility = [ "//foundation/distributeddatamgr/*" ]
36  visibility += [ "//foundation/multimodalinput/*" ]
37  visibility +=
38      [ "//hit/fuzzing_test/projects/multimodal_InputService_fuzzer/*" ]
39  visibility += [ "//foundation/communication/*" ]
40  visibility += [ "//build/common/*" ]
41  visibility += [ ":*" ]
42  visibility += [ "//base/security/*" ]
43  visibility += [ "//third_party/libsoup/*" ]
44  visibility += [ "//foundation/resourceschedule/resource_schedule_service/*" ]
45  visibility += [ "//foundation/bundlemanager/ecological_rule_mgr/*" ]
46  visibility += [ "//vendor/*" ]
47  visibility += [ "//base/accesscontrol/sandbox_manager/*" ]
48
49  sources = [ "src/sqlite3.c" ]
50
51  defines = [
52    "NDEBUG=1",
53    "HAVE_USLEEP=1",
54    "SQLITE_HAVE_ISNAN",
55    "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576",
56    "SQLITE_THREADSAFE=2",
57    "SQLITE_TEMP_STORE=3",
58    "SQLITE_POWERSAFE_OVERWRITE=1",
59    "SQLITE_DEFAULT_FILE_FORMAT=4",
60    "SQLITE_DEFAULT_AUTOVACUUM=1",
61    "SQLITE_ENABLE_MEMORY_MANAGEMENT=1",
62    "SQLITE_ENABLE_FTS3",
63    "SQLITE_ENABLE_FTS4",
64    "SQLITE_ENABLE_FTS5",
65    "SQLITE_OMIT_COMPILEOPTION_DIAGS",
66    "SQLITE_DEFAULT_FILE_PERMISSIONS=0660",
67    "SQLITE_SECURE_DELETE",
68    "SQLITE_ENABLE_BATCH_ATOMIC_WRITE",
69    "USE_PREAD64",
70    "fdatasync=fdatasync",
71    "HAVE_MALLOC_H=1",
72    "HAVE_MALLOC_USABLE_SIZE",
73    "SQLITE_DIRECT_OVERFLOW_READ",
74    "SQLITE_HAS_CODEC",
75    "SQLITE_EXPORT_SYMBOLS",
76    "SQLITE_SHARED_BLOCK_OPTIMIZATION",
77    "SQLITE_CODEC_ATTACH_CHANGED",
78    "SQLITE_ENABLE_DROPTABLE_CALLBACK",
79    "OPENSSL_SUPPRESS_DEPRECATED",
80    "LOG_DUMP",
81    "FDSAN_ENABLE",
82    "HARMONY_OS",
83  ]
84  cflags_c = [
85    "-fvisibility=hidden",
86    "-Wno-implicit-fallthrough",
87  ]
88  if (target_os != "ios") {
89    ldflags = [ "-Wl,--exclude-libs,ALL" ]
90  }
91  deps = []
92  public_configs = [ ":sqlite_config" ]
93  public_external_deps = [ "c_utils:utilsbase" ]
94  configs = [ ":sqlite3_private_config" ]
95  innerapi_tags = [ "platformsdk_indirect" ]
96  part_name = "sqlite"
97  subsystem_name = "thirdparty"
98  install_images = [ system_base_dir ]
99  relative_install_dir = "platformsdk"
100  if (is_cross_platform_build) {
101    if (target_os == "ios") {
102      deps += [ "//third_party/bounds_checking_function:libsec_shared" ]
103    } else {
104      deps += [ "//commonlibrary/c_utils/base:utils" ]
105    }
106  } else {
107    external_deps = [
108      "c_utils:utils",
109      "openssl:libcrypto_shared",
110    ]
111  }
112}
113
114ohos_executable("sqlite3") {
115  include_dirs = [ "include" ]
116  sources = [
117    "src/shell.c",
118    "src/sqlite3.c",
119  ]
120
121  defines = [
122    "NDEBUG=1",
123    "HAVE_USLEEP=1",
124    "SQLITE_HAVE_ISNAN",
125    "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576",
126    "SQLITE_THREADSAFE=2",
127    "SQLITE_TEMP_STORE=3",
128    "SQLITE_POWERSAFE_OVERWRITE=1",
129    "SQLITE_DEFAULT_FILE_FORMAT=4",
130    "SQLITE_DEFAULT_AUTOVACUUM=1",
131    "SQLITE_ENABLE_MEMORY_MANAGEMENT=1",
132    "SQLITE_ENABLE_FTS3",
133    "SQLITE_ENABLE_FTS4",
134    "SQLITE_OMIT_COMPILEOPTION_DIAGS",
135    "SQLITE_DEFAULT_FILE_PERMISSIONS=0600",
136    "SQLITE_SECURE_DELETE",
137    "SQLITE_ENABLE_BATCH_ATOMIC_WRITE",
138    "USE_PREAD64",
139    "fdatasync=fdatasync",
140    "SQLITE_DIRECT_OVERFLOW_READ",
141    "SQLITE_SHARED_BLOCK_OPTIMIZATION",
142    "OPENSSL_SUPPRESS_DEPRECATED",
143    "LOG_DUMP",
144    "FDSAN_ENABLE",
145    "HARMONY_OS",
146  ]
147
148  cflags = [
149    "-Wno-error=implicit-function-declaration",
150    "-Wno-implicit-fallthrough",
151  ]
152}
153
154if (is_mingw || is_mac) {
155  ohos_shared_library("sqlite_sdk") {
156    include_dirs = [
157      "include",
158      "//third_party/bounds_checking_function/include",
159      "//third_party/openssl/include",
160    ]
161
162    sources = [ "src/sqlite3.c" ]
163
164    defines = [
165      "NDEBUG=1",
166      "HAVE_USLEEP=1",
167      "SQLITE_HAVE_ISNAN",
168      "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576",
169      "SQLITE_THREADSAFE=2",
170      "SQLITE_TEMP_STORE=3",
171      "SQLITE_POWERSAFE_OVERWRITE=1",
172      "SQLITE_DEFAULT_FILE_FORMAT=4",
173      "SQLITE_DEFAULT_AUTOVACUUM=1",
174      "SQLITE_ENABLE_MEMORY_MANAGEMENT=1",
175      "SQLITE_ENABLE_FTS3",
176      "SQLITE_ENABLE_FTS4",
177      "SQLITE_OMIT_COMPILEOPTION_DIAGS",
178      "SQLITE_DEFAULT_FILE_PERMISSIONS=0600",
179      "SQLITE_SECURE_DELETE",
180      "SQLITE_ENABLE_BATCH_ATOMIC_WRITE",
181      "USE_PREAD64",
182      "fdatasync=fdatasync",
183      "SQLITE_DIRECT_OVERFLOW_READ",
184      "SQLITE_HAS_CODEC",
185      "SQLITE_EXPORT_SYMBOLS",
186      "SQLITE_SHARED_BLOCK_OPTIMIZATION",
187      "OPENSSL_SUPPRESS_DEPRECATED",
188    ]
189    remove_configs = [ "//build/config/compiler:chromium_code" ]
190    deps = [
191      "//third_party/bounds_checking_function:libsec_shared",
192      "//third_party/openssl:libcrypto_restool",
193    ]
194    if (is_mingw) {
195      libs = [ "//prebuilts/mingw-w64/ohos/linux-x86_64/clang-mingw/x86_64-w64-mingw32/lib/libws2_32.a" ]
196    }
197    cflags = [
198      "-Wno-error=implicit-function-declaration",
199      "-Wno-implicit-fallthrough",
200    ]
201    part_name = "sqlite"
202    subsystem_name = "thirdparty"
203  }
204}
205
206if (is_cross_platform_build) {
207  ohos_static_library("sqlite_static") {
208    visibility = [ "//foundation/distributeddatamgr/*" ]
209    visibility += [ "//foundation/multimodalinput/*" ]
210    visibility +=
211        [ "//hit/fuzzing_test/projects/multimodal_InputService_fuzzer/*" ]
212    visibility += [ "//foundation/communication/*" ]
213    visibility += [ "//build/common/*" ]
214    visibility += [ ":*" ]
215    visibility += [ "//base/security/*" ]
216    visibility += [ "//third_party/libsoup/*" ]
217    visibility +=
218        [ "//foundation/resourceschedule/resource_schedule_service/*" ]
219    visibility += [ "//foundation/bundlemanager/ecological_rule_mgr/*" ]
220
221    sources = [ "src/sqlite3.c" ]
222
223    defines = [
224      "NDEBUG=1",
225      "HAVE_USLEEP=1",
226      "SQLITE_HAVE_ISNAN",
227      "SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576",
228      "SQLITE_THREADSAFE=2",
229      "SQLITE_TEMP_STORE=3",
230      "SQLITE_POWERSAFE_OVERWRITE=1",
231      "SQLITE_DEFAULT_FILE_FORMAT=4",
232      "SQLITE_DEFAULT_AUTOVACUUM=1",
233      "SQLITE_ENABLE_MEMORY_MANAGEMENT=1",
234      "SQLITE_ENABLE_FTS3",
235      "SQLITE_ENABLE_FTS4",
236      "SQLITE_ENABLE_FTS5",
237      "SQLITE_OMIT_COMPILEOPTION_DIAGS",
238      "SQLITE_DEFAULT_FILE_PERMISSIONS=0660",
239      "SQLITE_SECURE_DELETE",
240      "SQLITE_ENABLE_BATCH_ATOMIC_WRITE",
241      "USE_PREAD64",
242      "fdatasync=fdatasync",
243      "HAVE_MALLOC_H=1",
244      "HAVE_MALLOC_USABLE_SIZE",
245      "SQLITE_DIRECT_OVERFLOW_READ",
246      "SQLITE_HAS_CODEC",
247      "SQLITE_EXPORT_SYMBOLS",
248      "SQLITE_SHARED_BLOCK_OPTIMIZATION",
249      "SQLITE_CODEC_ATTACH_CHANGED",
250      "SQLITE_ENABLE_DROPTABLE_CALLBACK",
251      "OPENSSL_SUPPRESS_DEPRECATED",
252    ]
253
254    cflags_c = [
255      "-fvisibility=hidden",
256      "-Wno-implicit-fallthrough",
257    ]
258
259    deps = [
260      "//third_party/bounds_checking_function:libsec_static",
261      "//third_party/openssl:libcrypto_static",
262    ]
263    public_configs = [ ":sqlite_config" ]
264    configs = [ ":sqlite3_private_config" ]
265    part_name = "sqlite"
266    subsystem_name = "thirdparty"
267  }
268}
269