1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
--- Android.bp 2020-10-30 16:41:52.854552104 -0700
+++ Android.bp 2020-10-30 16:47:00.153323579 -0700
@@ -1,10 +1,16 @@
// This file is generated by cargo2android.py --device --run --dependencies --test --patch=patches/Android.bp.patch.
+// We renamed the shared_libs dependence from libsqlite3 to libsqlite.
+// srcs has been moved out of _defaults to work around b/163420435
+
rust_library {
name: "liblibsqlite3_sys",
host_supported: true,
crate_name: "libsqlite3_sys",
- srcs: ["src/lib.rs"],
+ srcs: [
+ "src/lib.rs",
+ ":libsqlite3_bindgen",
+ ],
edition: "2018",
features: [
"default",
@@ -12,13 +18,14 @@
"pkg-config",
"vcpkg",
],
- shared_libs: ["libsqlite3"],
+ shared_libs: [
+ "libsqlite",
+ ],
}
rust_defaults {
name: "libsqlite3-sys_defaults",
crate_name: "libsqlite3_sys",
- srcs: ["src/lib.rs"],
test_suites: ["general-tests"],
auto_gen_config: true,
edition: "2018",
@@ -28,23 +35,70 @@
"pkg-config",
"vcpkg",
],
- shared_libs: ["libsqlite3"],
+ shared_libs: [
+ "libsqlite",
+ ],
}
rust_test_host {
name: "libsqlite3-sys_host_test_src_lib",
+ srcs: [
+ "src/lib.rs",
+ ":libsqlite3_bindgen",
+ ],
defaults: ["libsqlite3-sys_defaults"],
}
rust_test {
name: "libsqlite3-sys_device_test_src_lib",
+ srcs: [
+ "src/lib.rs",
+ ":libsqlite3_bindgen",
+ ],
defaults: ["libsqlite3-sys_defaults"],
}
// dependent_library ["feature_list"]
// pkg-config-0.3.19
-Errors in cargo.out:
-error: linking with `cc` failed: exit code: 1
-error: aborting due to previous error
-error: could not compile `libsqlite3-sys`.
+// Keep this array in sync with the cflags used in external/sqlite
+// After b/163598610 is resolved, use defaults instead.
+sqlite3_bindgen_clang_flags = [
+ " -DNDEBUG=1",
+ " -DHAVE_USLEEP=1",
+ " -DSQLITE_HAVE_ISNAN",
+ " -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576",
+ " -DSQLITE_THREADSAFE=2",
+ " -DSQLITE_TEMP_STORE=3",
+ " -DSQLITE_POWERSAFE_OVERWRITE=1",
+ " -DSQLITE_DEFAULT_FILE_FORMAT=4",
+ " -DSQLITE_DEFAULT_AUTOVACUUM=1",
+ " -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1",
+ " -DSQLITE_ENABLE_FTS3",
+ " -DSQLITE_ENABLE_FTS3_BACKWARDS",
+ " -DSQLITE_ENABLE_FTS4",
+ " -DSQLITE_OMIT_BUILTIN_TEST",
+ " -DSQLITE_OMIT_COMPILEOPTION_DIAGS",
+ " -DSQLITE_OMIT_LOAD_EXTENSION",
+ " -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600",
+ " -DSQLITE_SECURE_DELETE",
+ " -DSQLITE_ENABLE_BATCH_ATOMIC_WRITE",
+ " -DBIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD",
+ " -DHAVE_POSIX_FALLOCATE=1",
+ // extra -D flags for android targets
+ " -DUSE_PREAD64",
+ " -Dfdatasync=fdatasync",
+ " -DHAVE_MALLOC_H=1",
+ " -DHAVE_MALLOC_USABLE_SIZE",
+ " -Wno-unused-parameter",
+]
+
+rust_bindgen {
+ name: "libsqlite3_bindgen",
+ host_supported: true,
+ crate_name: "sqlite3_bindgen",
+ custom_bindgen: "sqlite3_bindgen_build",
+ wrapper_src: "wrapper.h",
+ source_stem: "bindgen",
+ cflags: ["-I external/sqlite/dist"] + sqlite3_bindgen_clang_flags,
+}
|