Module: MilkTea::Bindgen
- Defined in:
- lib/milk_tea/bindings/bindgen.rb,
lib/milk_tea/bindings/bindgen/emitter.rb,
lib/milk_tea/bindings/bindgen/overrides.rb,
lib/milk_tea/bindings/bindgen/ast_parser.rb,
lib/milk_tea/bindings/bindgen/declaration.rb,
lib/milk_tea/bindings/bindgen/type_mapper.rb
Defined Under Namespace
Classes: Generator
Constant Summary collapse
- MACRO_CONST_PREFIX =
"__mt_bindgen_macro_"- QUALIFIERS =
%w[const volatile restrict].freeze
- NULLABILITY_QUALIFIERS =
%w[_Nullable _Nonnull _Null_unspecified _Nullable_result].freeze
- NON_VALUE_MACRO_TOKENS =
%w[ extern static inline typedef struct union enum do if else for while return sizeof __attribute__ __attribute __declspec ].freeze
- PRIMITIVE_TYPE_MAP =
{ "_Bool" => "bool", "bool" => "bool", "void" => "void", "char" => "char", "signed char" => "byte", "unsigned char" => "ubyte", "short" => "short", "short int" => "short", "signed short" => "short", "signed short int" => "short", "unsigned short" => "ushort", "unsigned short int" => "ushort", "int" => "int", "signed" => "int", "signed int" => "int", "unsigned" => "uint", "unsigned int" => "uint", "long" => "ptr_int", "long int" => "ptr_int", "signed long" => "ptr_int", "signed long int" => "ptr_int", "unsigned long" => "ptr_uint", "unsigned long int" => "ptr_uint", "long long" => "long", "long long int" => "long", "signed long long" => "long", "signed long long int" => "long", "unsigned long long" => "ulong", "unsigned long long int" => "ulong", "float" => "float", "double" => "double", }.freeze
Class Method Summary collapse
- .generate(module_name:, header_path:, tracked_header_paths: [], tracked_header_prefixes: [], declaration_name_prefixes: [], excluded_declaration_names: [], link_libraries: [], include_directives: nil, bindgen_defines: [], bindgen_include_directives: [], module_imports: [], clang: ENV.fetch("CLANG", "clang"), clang_args: [], type_name_overrides: {}, type_overrides: {}, function_param_type_overrides: {}, function_return_type_overrides: {}, field_type_overrides: {}, allow_static_inline_functions: false, strip_leading_underscores: false) ⇒ Object
- .generate_with_report(module_name:, header_path:, tracked_header_paths: [], tracked_header_prefixes: [], declaration_name_prefixes: [], excluded_declaration_names: [], link_libraries: [], include_directives: nil, bindgen_defines: [], bindgen_include_directives: [], module_imports: [], clang: ENV.fetch("CLANG", "clang"), clang_args: [], type_name_overrides: {}, type_overrides: {}, function_param_type_overrides: {}, function_return_type_overrides: {}, field_type_overrides: {}, allow_static_inline_functions: false, strip_leading_underscores: false) ⇒ Object
Class Method Details
.generate(module_name:, header_path:, tracked_header_paths: [], tracked_header_prefixes: [], declaration_name_prefixes: [], excluded_declaration_names: [], link_libraries: [], include_directives: nil, bindgen_defines: [], bindgen_include_directives: [], module_imports: [], clang: ENV.fetch("CLANG", "clang"), clang_args: [], type_name_overrides: {}, type_overrides: {}, function_param_type_overrides: {}, function_return_type_overrides: {}, field_type_overrides: {}, allow_static_inline_functions: false, strip_leading_underscores: false) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/milk_tea/bindings/bindgen.rb', line 58 def self.generate(module_name:, header_path:, tracked_header_paths: [], tracked_header_prefixes: [], declaration_name_prefixes: [], excluded_declaration_names: [], link_libraries: [], include_directives: nil, bindgen_defines: [], bindgen_include_directives: [], module_imports: [], clang: ENV.fetch("CLANG", "clang"), clang_args: [], type_name_overrides: {}, type_overrides: {}, function_param_type_overrides: {}, function_return_type_overrides: {}, field_type_overrides: {}, allow_static_inline_functions: false, strip_leading_underscores: false) generate_with_report( module_name:, header_path:, tracked_header_paths:, tracked_header_prefixes:, declaration_name_prefixes:, excluded_declaration_names:, link_libraries:, include_directives:, bindgen_defines:, bindgen_include_directives:, module_imports:, clang:, clang_args:, type_name_overrides:, type_overrides:, function_param_type_overrides:, function_return_type_overrides:, field_type_overrides:, allow_static_inline_functions:, strip_leading_underscores:, ).fetch(:source) end |
.generate_with_report(module_name:, header_path:, tracked_header_paths: [], tracked_header_prefixes: [], declaration_name_prefixes: [], excluded_declaration_names: [], link_libraries: [], include_directives: nil, bindgen_defines: [], bindgen_include_directives: [], module_imports: [], clang: ENV.fetch("CLANG", "clang"), clang_args: [], type_name_overrides: {}, type_overrides: {}, function_param_type_overrides: {}, function_return_type_overrides: {}, field_type_overrides: {}, allow_static_inline_functions: false, strip_leading_underscores: false) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/milk_tea/bindings/bindgen.rb', line 83 def self.generate_with_report(module_name:, header_path:, tracked_header_paths: [], tracked_header_prefixes: [], declaration_name_prefixes: [], excluded_declaration_names: [], link_libraries: [], include_directives: nil, bindgen_defines: [], bindgen_include_directives: [], module_imports: [], clang: ENV.fetch("CLANG", "clang"), clang_args: [], type_name_overrides: {}, type_overrides: {}, function_param_type_overrides: {}, function_return_type_overrides: {}, field_type_overrides: {}, allow_static_inline_functions: false, strip_leading_underscores: false) Generator.new( module_name:, header_path:, tracked_header_paths:, tracked_header_prefixes:, declaration_name_prefixes:, excluded_declaration_names:, link_libraries:, include_directives:, bindgen_defines:, bindgen_include_directives:, module_imports:, clang:, clang_args:, type_name_overrides:, type_overrides:, function_param_type_overrides:, function_return_type_overrides:, field_type_overrides:, allow_static_inline_functions:, strip_leading_underscores:, ).generate_with_report end |