diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2016-12-04 15:15:56 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2016-12-06 20:35:55 -1000 |
commit | f67ae948a831c69e9de16da216cb80892b5038fe (patch) | |
tree | ad210cc7b0ea721c0704f6380c01609f18527053 /libbindgen/src/codegen/mod.rs | |
parent | 8013e0c7bc28e0883363649c94360b4878d1d742 (diff) |
Add an API to decide what gets generated more granularly.
Diffstat (limited to 'libbindgen/src/codegen/mod.rs')
-rw-r--r-- | libbindgen/src/codegen/mod.rs | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/libbindgen/src/codegen/mod.rs b/libbindgen/src/codegen/mod.rs index 7fa76d56..ff18ab83 100644 --- a/libbindgen/src/codegen/mod.rs +++ b/libbindgen/src/codegen/mod.rs @@ -267,15 +267,19 @@ impl CodeGenerator for Item { module.codegen(ctx, result, whitelisted_items, self); } ItemKind::Function(ref fun) => { - if !ctx.options().ignore_functions { + if ctx.options().codegen_config.functions { fun.codegen(ctx, result, whitelisted_items, self); } } ItemKind::Var(ref var) => { - var.codegen(ctx, result, whitelisted_items, self); + if ctx.options().codegen_config.vars { + var.codegen(ctx, result, whitelisted_items, self); + } } ItemKind::Type(ref ty) => { - ty.codegen(ctx, result, whitelisted_items, self); + if ctx.options().codegen_config.types { + ty.codegen(ctx, result, whitelisted_items, self); + } } } } @@ -1152,14 +1156,16 @@ impl CodeGenerator for CompInfo { result.push(item); } - let mut method_names = Default::default(); - for method in self.methods() { - method.codegen_method(ctx, - &mut methods, - &mut method_names, - result, - whitelisted_items, - item); + if ctx.options().codegen_config.methods { + let mut method_names = Default::default(); + for method in self.methods() { + method.codegen_method(ctx, + &mut methods, + &mut method_names, + result, + whitelisted_items, + item); + } } } @@ -1222,10 +1228,6 @@ impl MethodCodegen for Method { result: &mut CodegenResult, whitelisted_items: &ItemSet, _parent: &Item) { - if ctx.options().ignore_methods { - return; - } - if self.is_virtual() { return; // FIXME } |