37 lines
1.1 KiB
Rust
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();
|
|
} |