37 lines
1.1 KiB
Rust

extern crate cbindgen;
extern crate csbindgen;
use std::env;
use cbindgen::Config;
fn main() {
let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
let config = Config::from_file("./cbindgen.toml").unwrap();
cbindgen::Builder::new()
.with_crate(crate_dir)
.with_config(config)
.generate()
.expect("Unable to generate bindings")
.write_to_file("../finlib-cpp/include/finlib-native.h");
csbindgen::Builder::default()
.input_extern_file("src/lib.rs")
.input_extern_file("../finlib/src/lib.rs")
.input_extern_file("../finlib/src/risk/portfolio.rs")
.input_extern_file("../finlib/src/options/blackscholes/mod.rs")
.csharp_dll_name("libfinlib_ffi")
.always_included_types([
"Portfolio",
"ValueType",
"PortfolioAsset",
"OptionVariables",
"CallOption",
"PutOption",
"OptionGreeks",
])
.csharp_namespace("FinLib")
.generate_csharp_file("../FinLib.NET/FinLib/NativeMethods.g.cs")
.unwrap();
}