aboutsummaryrefslogtreecommitdiff
path: root/patches/Android.bp.patch
blob: 0a2d5c39d1c0587b8ef40ffa63d627a1d5c2b58e (plain)
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,
+}