diff --git a/.gitignore b/.gitignore index 2d74f8d7..2deffabf 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,7 @@ compile_commands.json CTestTestfile.cmake _deps _test* - +*.dll *.db cozorocks/deps/ .DS_Store diff --git a/cozorocks/build.rs b/cozorocks/build.rs index 10a811dc..e8134cc0 100644 --- a/cozorocks/build.rs +++ b/cozorocks/build.rs @@ -1,19 +1,32 @@ use std::env::var; fn main() { - cxx_build::bridge("src/bridge/mod.rs") - .files(["bridge/status.cpp", "bridge/db.cpp", "bridge/tx.cpp"]) + let target = var("TARGET").unwrap(); + + let mut builder = cxx_build::bridge("src/bridge/mod.rs"); + builder.files(["bridge/status.cpp", "bridge/db.cpp", "bridge/tx.cpp"]) .include("deps/include") - .include("bridge") - .flag_if_supported("-std=c++17") - .compile("cozorocks"); + .include("bridge"); + if target.contains("msvc") { + builder.flag_if_supported("-std:c++17"); + } else { + builder.flag_if_supported("-std=c++17"); + }; + builder.compile("cozorocks"); let manifest_dir = var("CARGO_MANIFEST_DIR").unwrap(); println!("cargo:rustc-link-search={}/deps/lib/", manifest_dir); println!("cargo:rustc-link-lib=rocksdb"); println!("cargo:rustc-link-lib=z"); - println!("cargo:rustc-link-lib=bz2"); + + if target.contains("msvc") { + println!("cargo:rustc-link-lib=rpcrt4"); + println!("cargo:rustc-link-lib=shlwapi"); + } else { + println!("cargo:rustc-link-lib=bz2"); + } + println!("cargo:rustc-link-lib=lz4"); println!("cargo:rustc-link-lib=snappy"); println!("cargo:rustc-link-lib=zstd"); diff --git a/cozorocks/rocksdb b/cozorocks/rocksdb index e072c129..d52b520d 160000 --- a/cozorocks/rocksdb +++ b/cozorocks/rocksdb @@ -1 +1 @@ -Subproject commit e072c129d57a0883370034cecf6774c745c40f76 +Subproject commit d52b520d5168de6be5f1494b2035b61ff0958c11