C++ introspection code generator
Branch: cmake
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake
examples
include/cppintrospection
m4
src
tests
.clang-format
.gitignore
AUTHORS
CMakeLists.txt
COPYING
ChangeLog
INSTALL
LICENSE
Makefile.am
NEWS
README
TODO
autogen.sh
configure.ac
cppintrospection-config-build-tree.cmake.in
cppintrospection-config.cmake.in
cppintrospection.pc.in
doxyfile.in
generate_osgintrospection.sh
man-genwrapper.txt
one_step_build.sh

README

cppintrospection
----------------

The cppintrospection library was a part of the OpenSceneGraph library before
version 2.9.8. And it is then removed from the kernel and work as an independent
project. It is initially created and managed by Macro Jez and Robert Osfield,
and then managed by Wang Rui. It has been renamed to cppintrospection by 
Mike Wozniewski, Tristan Matthews and Alexandre Quessy in 2011.

cppintrospection provides a reflection mechanism which could do non-intrusive
callings of properties and methods at runtime. This makes OSG able to work with
languages other than C/C++.

cppintrospection is ideal for providing non native language binding to the OpenSceneGraph, convenient means
for editing properties in a generic way, such as required in scene graph editors,
and also facilitates the automatic serealization of objects.

cppintrospection can be used to provide introspection support to 3rd Party libraries without the need to
modify them to add this support, the wrappers providing the actual binding can be
automatically generated by parsing header files via gen_wrapper utility.  All the
core OpenSceneGraph libraries have pre built wrappers available for you use.

There are some good examples that using or had used osgIntrospection for own
purposes.
osgDotNet: http://www.openscenegraph.org/projects/osgDotNet
osgEdit: http://osgedit.sourceforge.net/
osgLua: http://svn.pplux.com/lab/osgLua/
osgPython: http://mescriva.codemaniacs.com/svn/osgPython/
...

For more information about OSG and the genwrapper tool which is used to generated
osgIntrospection wrappers, please visit:
http://www.openscenegraph.org
http://www.openscenegraph.org/projects/osg/wiki/GenWrapper

GenWrapper
----------

Maco Jez's genwrapper is a utiltiy program that reads C++ header files and then automatically generates osgWrapper code from to use alongside osgIntrospection. 

GenWrapper  was created as an 'ad-hoc' tool to support the development of osgIntrospection and it was never intended to be used with anything other than OSG source files, nor it was designed to meet requirements other than the author's ones. GenWrapper was tested on the OSG source tree ONLY and it's not known to work with anything else. If you want to use GenWrapper  on your own application's source tree, try to follow OSG coding conventions and directory layout in order to minimize the risk of failure. GENWRAPPER MAY OVERWRITE AND DESTROY YOUR FILES, USE AT YOUR OWN RISK. ALWAYS MAKE BACKUPS!!! 

Wrappers are generated from a two-phases process. The first phase requires an XML description of source files to be created with Doxygen (GenWrapper can build a Doxyfile for you). In the second phase GenWrapper takes the XML input and generates C++ introspection wrappers and optionally GNU makefiles and VS6 project files. 

RECENT HISTORY
--------------
The osgIntrospection project was maintained in a Subversion repository on http://www.openscenegraph.org/svn/osg/osgIntrospection/trunk and has been forked and renamed to cppintrospection by Alexandre Quessy, Mike Wozniewski and Tristan Matthews in 2011. They packaged it using the GNU Autotools, but left the CMake files there too, as an alternative build system.

NOTES
-----

GenWrapper only overwrites files whose content has actually changed. Wrapper files are written into output_dir/src/osgWrappers. VS6 project files are written into output_dir/VisualStudio/osgWrappers.
Change lists (option -l) are created as three text files for each target directory. Such files are named "removed.gw" (list of removed files), "added.gw" (list of added files) and "modified.gw" (list of modified files).

Tested Doxygen version is 1.4.1. GenWrapper may not work with other versions. 

2006 - Written by Maco Jez
2010 - Updated by Mike Wozniewski, Tristan Matthews and Alexandre Quessy

REPORTING BUGS
--------------

http://github.com/sat-metalab/cppintrospection

Note that the cppintrospection project is a friendly fork of osgIntrospection, which can be found at the following URL:
http://www.openscenegraph.org/svn/osg/osgIntrospection/

Please post on the OpenSceneGraph osg-users mailing list if you want to discuss about cppintrospection.
http://www.openscenegraph.org/projects/osg/wiki/MailingLists


COPYRIGHT
---------

  Copyright (C) 2002 Robert Osfield
  Copyright (C) 2006 Maco Jez
  Copyright (C) 2006 Wang Rui
  Copyright (C) 2010 Mike Wozniewski
  Copyright (C) 2010 Tristan Matthews
  Copyright (C) 2010 Alexandre Quessy
  
  Released under the terms of the OpenSceneGraph Public License, Version 0.0
  Notes: the OSGPL is based on the LGPL, with the 4 exceptions laid in the wxWindows.