File tree 3 files changed +13
-1
lines changed
3 files changed +13
-1
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
vtab = []
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
@@ -151,11 +152,20 @@ mod build_bundled {
151
152
cfg. cpp ( true )
152
153
. flag_if_supported ( "-std=c++11" )
153
154
. flag_if_supported ( "-stdlib=libc++" )
154
- . flag_if_supported ( "-stdlib=libstdc++" )
155
155
. flag_if_supported ( "/bigobj" )
156
156
. warnings ( false )
157
157
. flag_if_supported ( "-w" ) ;
158
158
159
+ // The Android NDK doesn't build with this flag set.
160
+ if env:: var ( "CARGO_CFG_TARGET_OS" ) . unwrap ( ) != "android" {
161
+ cfg. flag_if_supported ( "-stdlib=libstdc++" ) ;
162
+ }
163
+
164
+ #[ cfg( feature = "bundled-android-static-libstdcpp" ) ]
165
+ if env:: var ( "CARGO_CFG_TARGET_OS" ) . unwrap ( ) == "android" {
166
+ cfg. flag_if_supported ( "-static-libstdc++" ) ;
167
+ }
168
+
159
169
if win_target ( ) {
160
170
cfg. define ( "DUCKDB_BUILD_LIBRARY" , None ) ;
161
171
}
You can’t perform that action at this time.
0 commit comments