Skip to content

Commit

Permalink
feat(runtime-c-api) Remove the flag `WASM_EMSCRIPTEN_GENERATE_C_API_H…
Browse files Browse the repository at this point in the history
…EADERS`.

This patch removes the `WASM_EMSCRIPTEN_GENERATE_C_API_HEADERS`
flag. Consequently, the C header files will be generated for each
build.

The `generate-c-api-headers` feature is also removed, since it becomes useless.
  • Loading branch information
Hywan committed Mar 6, 2019
1 parent 7c56d89 commit f299735
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 26 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ emtests:
WASM_EMSCRIPTEN_GENERATE_EMTESTS=1 cargo build -p wasmer-emscripten

capi:
WASM_EMSCRIPTEN_GENERATE_C_API_HEADERS=1 cargo build --manifest-path lib/runtime-c-api/Cargo.toml --features generate-c-api-headers
cargo build --manifest-path lib/runtime-c-api/Cargo.toml

# clean:
# rm -rf artifacts
Expand Down
9 changes: 2 additions & 7 deletions lib/runtime-c-api/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "wasmer-runtime-c-api"
version = "0.2.1"
description = "Wasmer c-api library"
description = "Wasmer C API library"
license = "MIT"
authors = ["The Wasmer Engineering Team <[email protected]>"]
repository = "https://github.com/wasmerio/wasmer"
Expand All @@ -17,9 +17,4 @@ libc = "0.2"
crate-type = ["cdylib"]

[build-dependencies]
cbindgen = { version = "0.8", optional = true }

[features]
generate-c-api-headers = ["cbindgen"]


cbindgen = "0.8"
24 changes: 6 additions & 18 deletions lib/runtime-c-api/build.rs
Original file line number Diff line number Diff line change
@@ -1,45 +1,33 @@
#[cfg(feature = "generate-c-api-headers")]
extern crate cbindgen;

use cbindgen::{Builder, Language};
use std::{env, path::Path};

static CAPI_ENV_VAR: &str = "WASM_EMSCRIPTEN_GENERATE_C_API_HEADERS";

fn main() {
if env::var(CAPI_ENV_VAR).unwrap_or("0".to_string()) == "1" {
build();
}
}

#[cfg(feature = "generate-c-api-headers")]
fn build() {
let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap();

let out_dir = env::var("OUT_DIR").unwrap();
let out_path = Path::new(&out_dir);

let mut wasmer_h = out_path.to_path_buf();
wasmer_h.push("wasmer.h");

let mut wasmer_hh = out_path.to_path_buf();
wasmer_hh.push("wasmer.hh");

use cbindgen::Language;
cbindgen::Builder::new()
Builder::new()
.with_crate(crate_dir.clone())
.with_language(Language::C)
.with_include_guard("WASMER_H")
.generate()
.expect("Unable to generate C bindings")
.write_to_file(wasmer_h);

cbindgen::Builder::new()
Builder::new()
.with_crate(crate_dir)
.with_language(Language::Cxx)
.with_include_guard("WASMER_H")
.generate()
.expect("Unable to generate C++ bindings")
.write_to_file(wasmer_hh);
}

#[cfg(not(feature = "generate-c-api-headers"))]
fn build() {
panic!("environment var set to generate wasmer c API headers but generate-c-api-headers feature not enabled")
}

0 comments on commit f299735

Please sign in to comment.