A
Andrea Fazzi
ffi-swig-generator version 0.2.1
by Andrea Fazzi
http://kenai.com/projects/ruby-ffi
== DESCRIPTION
ffi-swig-generator is a ruby-ffi wrapper code generator based on SWIG
interface files.
ffi-swig-generator is able to traverse a XML parse tree file generated
by the +swig+ command and to produce a ruby-ffi interface file from
it.
ffi-swig-generator is shipped with a command line tool (ffi-gen) and a
rake
task that automates the code generation process.
ffi-swig-generator XML capabilities are provided by nokogiri.
== CHANGES
* 1 minor enhancement
* Removed old lib/ffi-generator.rb file.
== FEATURES
* The program is able to generate:
* all C native types
* #define constants
* typedefs
* struct, union, array and enum types
* callbacks (pointers to functions)
* Naive indentation of the generated code
== SYNOPSIS
ffi-gen mylib.xml mylib.rb
require 'ffi-swig-generator'
FFI::Generator::Task.new :input_fn => 'my_interface_dir/*.i'
output_dir => 'my_output_dir'
== REQUIREMENTS
* rake >= 0.8.3
* nokogiri >= 1.1.1
* swig >= 1.3
== DOWNLOAD
To download and install from rubygems:
[sudo] gem install ffi-swig-generator
To download the develpment trunk:
hg clone http://kenai.com/hg/ruby-ffi~swig-generator
== EXAMPLES
See the examples in examples/ folder.
libc.i is an interface file containing some excerpt of libc functions.
wiiuse.i is a enough complex example of a C header file interface. It
reproduces the content of wiiuse.h, the header file of the wiiuse
library. wiiuse is a C library that handles the connection with
Nintendo Wiimote devices. The interface file is almost a mere
copy/paste from the original header file. See
http://github.com/remogatto/ffi-wiiuse to get updated revision of
ffi-wiiuse library.
by Andrea Fazzi
http://kenai.com/projects/ruby-ffi
== DESCRIPTION
ffi-swig-generator is a ruby-ffi wrapper code generator based on SWIG
interface files.
ffi-swig-generator is able to traverse a XML parse tree file generated
by the +swig+ command and to produce a ruby-ffi interface file from
it.
ffi-swig-generator is shipped with a command line tool (ffi-gen) and a
rake
task that automates the code generation process.
ffi-swig-generator XML capabilities are provided by nokogiri.
== CHANGES
* 1 minor enhancement
* Removed old lib/ffi-generator.rb file.
== FEATURES
* The program is able to generate:
* all C native types
* #define constants
* typedefs
* struct, union, array and enum types
* callbacks (pointers to functions)
* Naive indentation of the generated code
== SYNOPSIS
From command line:
ffi-gen mylib.xml mylib.rb
From a Rakefile:
require 'ffi-swig-generator'
FFI::Generator::Task.new :input_fn => 'my_interface_dir/*.i'
output_dir => 'my_output_dir'
== REQUIREMENTS
* rake >= 0.8.3
* nokogiri >= 1.1.1
* swig >= 1.3
== DOWNLOAD
To download and install from rubygems:
[sudo] gem install ffi-swig-generator
To download the develpment trunk:
hg clone http://kenai.com/hg/ruby-ffi~swig-generator
== EXAMPLES
See the examples in examples/ folder.
libc.i is an interface file containing some excerpt of libc functions.
wiiuse.i is a enough complex example of a C header file interface. It
reproduces the content of wiiuse.h, the header file of the wiiuse
library. wiiuse is a C library that handles the connection with
Nintendo Wiimote devices. The interface file is almost a mere
copy/paste from the original header file. See
http://github.com/remogatto/ffi-wiiuse to get updated revision of
ffi-wiiuse library.