Skip to content
This repository has been archived by the owner on Jun 5, 2019. It is now read-only.

Commit

Permalink
Add update notice & markdown
Browse files Browse the repository at this point in the history
  • Loading branch information
stephenatwork committed Oct 24, 2013
1 parent 957c638 commit c9f0099
Showing 1 changed file with 25 additions and 4 deletions.
29 changes: 25 additions & 4 deletions README.txt
@@ -1,16 +1,35 @@

UPDATE Oct-2013:
=============

Originally we had chose python as the main language for this project because it was a natural fit
for text processing. However, we eventually reached a point where the simplified output wasn't
powerful enough to handle all the nuances of templates and specialization. Since then, we have
ported our scripts to C++ so that they can access the Clang AST directly.

The C++ version is noticably faster and allows full clang AST access. This python version allows
rapid iteration and is more suitable for experimentation.



Clang-extract
=============


Clang-extract uses clang to parse your header files and then prints out a description of what it parsed.

This project was described in a talk a GDC 2012 http://www.gdcvault.com/play/1015586/ (subscription required)
It was funded by Havok and is used as the basis of its reflection system.


Building:
Building
--------
* Either in your environment or in the Makefile, set LLVM_DIR to the folder containing a prebuilt LLVM and Clang.
* make


Test:
Test
--------
To run clang-extract on a small test:
* make test

Expand All @@ -24,11 +43,13 @@ def parse(text):
return output


Invoking:
Invoking
--------
Run clang-extract --help to see command line options.


Notes:
Notes
--------
clang-extract internally creates a file which includes all the input files specified on the command line.
You may need to add "-I ." to find the input files.
The -A option is useful to pass through annotations which are stored in the output file.

0 comments on commit c9f0099

Please sign in to comment.