2.4. The Global HeaderΒΆ

Besides the information provided by the typesystem, the generator needs to gather more data from the library headers containing the classes to be exposed in Python. If there is a header that include all the others (or just one, as is the case of libfoo) this could be passed directly to the generator.

If such a file is not available, or only a subset of the library is desired, or if some flags must be defined before parsing the library headers, then a global.h file must be provided.

The use of a global.h file is preferred if some macros must be defined before the parser gather data from the headers. For example, if NULL is not defined and it is used as a default paramater for some constructor or method, the parser will not recognize it.

To solve this create a global.h including all the desired headers and the defined (and undefined) flags as follows:

foobinding/data/global.h

#undef QT_NO_STL
#undef QT_NO_STL_WCHAR

#ifndef NULL
#define NULL    0
#endif

#include <foo.h>