|
|
|
@ -14,45 +14,45 @@ fn link(name: &str, bundled: bool) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fn build_rocksdb() { |
|
|
|
|
let mut config = gcc::Config::new(); |
|
|
|
|
config.include("rocksdb/include/"); |
|
|
|
|
config.include("rocksdb/"); |
|
|
|
|
config.include("rocksdb/third-party/gtest-1.7.0/fused-src/"); |
|
|
|
|
config.include("snappy/"); |
|
|
|
|
config.include("."); |
|
|
|
|
let mut config = gcc::Config::new(); |
|
|
|
|
config.include("rocksdb/include/"); |
|
|
|
|
config.include("rocksdb/"); |
|
|
|
|
config.include("rocksdb/third-party/gtest-1.7.0/fused-src/"); |
|
|
|
|
config.include("snappy/"); |
|
|
|
|
config.include("."); |
|
|
|
|
|
|
|
|
|
config.define("NDEBUG", Some("1")); |
|
|
|
|
config.define("SNAPPY", Some("1")); |
|
|
|
|
config.define("NDEBUG", Some("1")); |
|
|
|
|
config.define("SNAPPY", Some("1")); |
|
|
|
|
|
|
|
|
|
let mut lib_sources = include_str!("rocksdb_lib_sources.txt").split(" ").collect::<Vec<&'static str>>(); |
|
|
|
|
|
|
|
|
|
// We have a pregenerated a version of build_version.cc in the local directory
|
|
|
|
|
lib_sources = lib_sources.iter().cloned().filter(|file| { |
|
|
|
|
*file != "util/build_version.cc" |
|
|
|
|
}) |
|
|
|
|
.collect::<Vec<&'static str>>(); |
|
|
|
|
|
|
|
|
|
if cfg!(target_os = "macos") { |
|
|
|
|
config.define("OS_MACOSX", Some("1")); |
|
|
|
|
config.define("ROCKSDB_PLATFORM_POSIX", Some("1")); |
|
|
|
|
config.define("ROCKSDB_LIB_IO_POSIX", Some("1")); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
if cfg!(target_os = "linux") { |
|
|
|
|
config.define("OS_LINUX", Some("1")); |
|
|
|
|
config.define("ROCKSDB_PLATFORM_POSIX", Some("1")); |
|
|
|
|
config.define("ROCKSDB_LIB_IO_POSIX", Some("1")); |
|
|
|
|
// We have a pregenerated a version of build_version.cc in the local directory
|
|
|
|
|
lib_sources = lib_sources.iter().cloned().filter(|file| { |
|
|
|
|
*file != "util/build_version.cc" |
|
|
|
|
}) |
|
|
|
|
.collect::<Vec<&'static str>>(); |
|
|
|
|
|
|
|
|
|
if cfg!(target_os = "macos") { |
|
|
|
|
config.define("OS_MACOSX", Some("1")); |
|
|
|
|
config.define("ROCKSDB_PLATFORM_POSIX", Some("1")); |
|
|
|
|
config.define("ROCKSDB_LIB_IO_POSIX", Some("1")); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
if cfg!(target_os = "linux") { |
|
|
|
|
config.define("OS_LINUX", Some("1")); |
|
|
|
|
config.define("ROCKSDB_PLATFORM_POSIX", Some("1")); |
|
|
|
|
config.define("ROCKSDB_LIB_IO_POSIX", Some("1")); |
|
|
|
|
//COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp"
|
|
|
|
|
} |
|
|
|
|
if cfg!(target_os = "freebsd") { |
|
|
|
|
config.define("OS_FREEBSD", Some("1")); |
|
|
|
|
config.define("ROCKSDB_PLATFORM_POSIX", Some("1")); |
|
|
|
|
config.define("ROCKSDB_LIB_IO_POSIX", Some("1")); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if cfg!(target_os = "freebsd") { |
|
|
|
|
config.define("OS_FREEBSD", Some("1")); |
|
|
|
|
config.define("ROCKSDB_PLATFORM_POSIX", Some("1")); |
|
|
|
|
config.define("ROCKSDB_LIB_IO_POSIX", Some("1")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if cfg!(windows) { |
|
|
|
|
link("rpcrt4", false); |
|
|
|
|
config.define("OS_WIN", Some("1")); |
|
|
|
|
if cfg!(windows) { |
|
|
|
|
link("rpcrt4", false); |
|
|
|
|
config.define("OS_WIN", Some("1")); |
|
|
|
|
|
|
|
|
|
// Remove POSIX-specific sources
|
|
|
|
|
lib_sources = lib_sources.iter().cloned().filter(|file| { |
|
|
|
@ -66,51 +66,51 @@ fn build_rocksdb() { |
|
|
|
|
.collect::<Vec<&'static str>>(); |
|
|
|
|
|
|
|
|
|
// Add Windows-specific sources
|
|
|
|
|
lib_sources.push("port/win/port_win.cc"); |
|
|
|
|
lib_sources.push("port/win/env_win.cc"); |
|
|
|
|
lib_sources.push("port/win/env_default.cc"); |
|
|
|
|
lib_sources.push("port/win/win_logger.cc"); |
|
|
|
|
lib_sources.push("port/win/io_win.cc"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if cfg!(target_env = "msvc") { |
|
|
|
|
config.flag("-EHsc"); |
|
|
|
|
} else { |
|
|
|
|
config.flag("-std=c++11"); |
|
|
|
|
} |
|
|
|
|
lib_sources.push("port/win/port_win.cc"); |
|
|
|
|
lib_sources.push("port/win/env_win.cc"); |
|
|
|
|
lib_sources.push("port/win/env_default.cc"); |
|
|
|
|
lib_sources.push("port/win/win_logger.cc"); |
|
|
|
|
lib_sources.push("port/win/io_win.cc"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if cfg!(target_env = "msvc") { |
|
|
|
|
config.flag("-EHsc"); |
|
|
|
|
} else { |
|
|
|
|
config.flag("-std=c++11"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for file in lib_sources { |
|
|
|
|
let file = "rocksdb/".to_string() + file; |
|
|
|
|
let file = "rocksdb/".to_string() + file; |
|
|
|
|
config.file(&file); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
config.file("build_version.cc"); |
|
|
|
|
config.file("build_version.cc"); |
|
|
|
|
|
|
|
|
|
config.cpp(true); |
|
|
|
|
config.compile("librocksdb.a"); |
|
|
|
|
config.cpp(true); |
|
|
|
|
config.compile("librocksdb.a"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fn build_snappy() { |
|
|
|
|
let mut config = gcc::Config::new(); |
|
|
|
|
config.include("snappy/"); |
|
|
|
|
config.include("."); |
|
|
|
|
|
|
|
|
|
config.define("NDEBUG", Some("1")); |
|
|
|
|
|
|
|
|
|
if cfg!(target_env = "msvc") { |
|
|
|
|
config.flag("-EHsc"); |
|
|
|
|
} else { |
|
|
|
|
config.flag("-std=c++11"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
config.file("snappy/snappy.cc"); |
|
|
|
|
config.file("snappy/snappy-sinksource.cc"); |
|
|
|
|
config.file("snappy/snappy-c.cc"); |
|
|
|
|
config.cpp(true); |
|
|
|
|
config.compile("libsnappy.a"); |
|
|
|
|
let mut config = gcc::Config::new(); |
|
|
|
|
config.include("snappy/"); |
|
|
|
|
config.include("."); |
|
|
|
|
|
|
|
|
|
config.define("NDEBUG", Some("1")); |
|
|
|
|
|
|
|
|
|
if cfg!(target_env = "msvc") { |
|
|
|
|
config.flag("-EHsc"); |
|
|
|
|
} else { |
|
|
|
|
config.flag("-std=c++11"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
config.file("snappy/snappy.cc"); |
|
|
|
|
config.file("snappy/snappy-sinksource.cc"); |
|
|
|
|
config.file("snappy/snappy-c.cc"); |
|
|
|
|
config.cpp(true); |
|
|
|
|
config.compile("libsnappy.a"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fn main() { |
|
|
|
|
build_rocksdb(); |
|
|
|
|
build_snappy(); |
|
|
|
|
build_rocksdb(); |
|
|
|
|
build_snappy(); |
|
|
|
|
} |
|
|
|
|