Eukalyptus - Wrapper Generator
News
| 10 Jan 2006 | Web site goes online. |
Description
Eukalyptus wraps C++ libraries in Eiffel.
Author
Martin Piskernig <martin.piskernig@univie.ac.at>
Download
Coming soon: eukalyptus-0.1.tar.gz (0 bytes)
Features
Generates a wrapper for most parts of a C++ library:
- Namespaces
- Classes
- (Anonymous) Unions
- Global Functions and Methods (static or non-static)
- Overloading and Default Parameters
- Variables and Fields
- Constructors / Destructors
- Conversion Functions
- Inner Classes / Unions
- Typedefs
- Enumerations
- Forward Declarations
- Type Mappings (primitives, strings, simple types, pointers, references, arrays, ...)
- Inheritance
- (Cross-language) Polymorphism
- Templates (partial)
Requirements
Documentation
Coming soon!
Limitations
- No default types for templates
- No non type parameters for templates
- No callbacks / function pointers
- Operators currently can't be called by symbol (limitation of ISE Eiffel)
How to build
-
Unzip the source package:
$ tar xvzf eukalyptus-x.y.tar.gz
-
Change into the created directory:
$ cd Eukalyptus
-
Run the ISE Eiffel compiler and finalize the system:
$ ec
$ make finalize
-
The generated binary can now be called:
$ ./eukalyptus cppxmlfile xtfile
-
To test that everything works, you may try:
$ make test
which will generate an Irrlicht wrapper in /tmp/eu.
- Happy wrapping! :-)
How to wrap a library
In directory Eukalyptus, change to UTILS/kanemeta and run make.
This program will generate an XML representation of a library for you.
Arguments of kanemeta:
- An input C++ header file.
- The XML output file.
- All other arguments will be given to the g++ compiler.
An example:
$ LD_LIBRARY_PATH=/opt/gcc4/lib ./kanemeta \
/usr/irrlicht/include/irrlicht.h irrlicht.xml \
-I/usr/irrlicht/include
(The LD_LIBRARY_PATH is currently needed because of installing MetaC++,
please see their build documentation in section "Links"!)
To test if the output is correct, run a RelaxNG checker:
xmllint --noout --relaxng ../cpprng/kane.rng irrlicht.xml
License
Eukalyptus is released under the Eiffel Forum License, version 2.
Links