diff --git a/Cargo.toml b/Cargo.toml index 7849aca1d..7cd62daac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ hex = "0.3.2" sha2 = "0.8.0" rand = "0.6.5" smallvec = "0.6.9" -libsqlite3-sys = "0.14.0" +libsqlite3-sys = { version = "0.14.0", features = ["bundled"] } reqwest = "0.9.15" num-derive = "0.2.5" num-traits = "0.2.6" diff --git a/build.rs b/build.rs index dd24e9efd..5679ed63a 100644 --- a/build.rs +++ b/build.rs @@ -31,11 +31,8 @@ fn main() { build_tools(); add_search_path("/usr/local/lib"); - - link_dylib("sasl2"); - link_dylib("z"); - link_dylib("pthread"); - link_dylib("tools"); + add_search_path("./include/include"); + add_search_path("./include/libs"); if std::env::var("TARGET").unwrap().contains("-apple") { link_static("etpan"); @@ -44,7 +41,39 @@ fn main() { link_framework("CoreFoundation"); link_framework("CoreServices"); link_framework("Security"); - } else if std::env::var("TARGET").unwrap().contains("linux") { + + link_dylib("sasl2"); + link_dylib("z"); + link_dylib("pthread"); + link_dylib("tools"); + } else if std::env::var("TARGET").unwrap().contains("-android") { + add_search_path("./include/libs/arm64-v8a"); + add_search_path("./include/cyrus-sasl-android-4/libs/arm64-v8a"); + add_search_path("./include/cyrus-sasl-android-4/include"); + add_search_path("./include/openssl-android-3/libs/arm64-v8a"); + add_search_path("./include/openssl-android-3/include"); + add_search_path("./include/iconv-android-1/libs/arm64-v8a"); + add_search_path("./include/iconv-android-1/include"); + + // dependencies for libetpan + link_static("crypto"); + link_static("sasl2"); + link_static("iconv"); + link_static("ssl"); + link_dylib("z"); + + // libetpan iteself + link_static("etpan"); + + // local tools + link_static("tools"); + } else if std::env::var("TARGET").unwrap().contains("-linux") { link_dylib("etpan"); + link_dylib("sasl2"); + link_dylib("z"); + link_dylib("pthread"); + link_dylib("tools"); + } else { + panic!("unsupported target"); } }