File tree 3 files changed +14
-0
lines changed
3 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ name = "duckdb"
20
20
[features ]
21
21
default = []
22
22
bundled = [" libduckdb-sys/bundled" ]
23
+ bundled-android-static-libstdcpp = [" libduckdb-sys/bundled-android-static-libstdcpp" ]
23
24
json = [" libduckdb-sys/json" , " bundled" ]
24
25
parquet = [" libduckdb-sys/parquet" , " bundled" ]
25
26
vscalar = []
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ exclude = ["duckdb-sources"]
18
18
[features ]
19
19
default = [" vcpkg" , " pkg-config" ]
20
20
bundled = [" cc" ]
21
+ bundled-android-static-libstdcpp = [" bundled" ]
21
22
buildtime_bindgen = [" bindgen" , " pkg-config" , " vcpkg" ]
22
23
json = [" bundled" ]
23
24
parquet = [" bundled" ]
Original file line number Diff line number Diff line change @@ -37,6 +37,7 @@ fn main() {
37
37
mod build_bundled {
38
38
use std:: {
39
39
collections:: { HashMap , HashSet } ,
40
+ env,
40
41
path:: Path ,
41
42
} ;
42
43
@@ -152,10 +153,21 @@ mod build_bundled {
152
153
153
154
cfg. cpp ( true )
154
155
. flag_if_supported ( "-std=c++11" )
156
+ . flag_if_supported ( "-stdlib=libc++" )
155
157
. flag_if_supported ( "/bigobj" )
156
158
. warnings ( false )
157
159
. flag_if_supported ( "-w" ) ;
158
160
161
+ // The Android NDK doesn't build with this flag set.
162
+ if env:: var ( "CARGO_CFG_TARGET_OS" ) . unwrap ( ) != "android" {
163
+ cfg. flag_if_supported ( "-stdlib=libstdc++" ) ;
164
+ }
165
+
166
+ #[ cfg( feature = "bundled-android-static-libstdcpp" ) ]
167
+ if env:: var ( "CARGO_CFG_TARGET_OS" ) . unwrap ( ) == "android" {
168
+ cfg. flag_if_supported ( "-static-libstdc++" ) ;
169
+ }
170
+
159
171
if win_target ( ) {
160
172
cfg. define ( "DUCKDB_BUILD_LIBRARY" , None ) ;
161
173
}
You can’t perform that action at this time.
0 commit comments