special cases and other things in wxPython, and since I plan on making several more, I've decided to put the SWIG sources in wxPython's CVS instead of relying on maintaining patches. This effectivly becomes a fork of an obsolete version of SWIG, :-( but since SWIG 1.3 still doesn't have some things I rely on in 1.1, not to mention that my custom patches would all have to be redone, I felt that this is the easier road to take. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			116 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
//
 | 
						|
// embed15.i
 | 
						|
// SWIG file embedding the Python interpreter in something else.
 | 
						|
// This file is based on Python-1.5.  It will not work with
 | 
						|
// earlier versions.
 | 
						|
//
 | 
						|
// This file makes it possible to extend Python and all of its
 | 
						|
// built-in functions without having to hack it's setup script.
 | 
						|
//
 | 
						|
 | 
						|
 | 
						|
#ifdef AUTODOC
 | 
						|
%subsection "embed.i"
 | 
						|
%text %{
 | 
						|
This module provides support for building a new version of the
 | 
						|
Python executable.  This will be necessary on systems that do
 | 
						|
not support shared libraries and may be necessary with C++
 | 
						|
extensions.  This file contains everything you need to build
 | 
						|
a new version of Python from include files and libraries normally
 | 
						|
installed with the Python language.
 | 
						|
 | 
						|
This module will automatically grab all of the Python modules
 | 
						|
present in your current Python executable (including any special
 | 
						|
purpose modules you have enabled such as Tkinter).   Thus, you
 | 
						|
may need to provide additional link libraries when compiling.
 | 
						|
 | 
						|
This library file only works with Python 1.5.  A version 
 | 
						|
compatible with Python 1.4 is available as embed14.i and
 | 
						|
a Python1.3 version is available as embed13.i.    As far as
 | 
						|
I know, this module is C++ safe.
 | 
						|
%}
 | 
						|
#else
 | 
						|
%echo "embed.i : Using Python 1.5"
 | 
						|
#endif
 | 
						|
 | 
						|
%wrapper %{
 | 
						|
 | 
						|
#include <Python.h>
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C"
 | 
						|
#endif
 | 
						|
void SWIG_init();  /* Forward reference */
 | 
						|
 | 
						|
#define _PyImport_Inittab swig_inittab
 | 
						|
 | 
						|
/* Grab Python's inittab[] structure */
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
#include <config.c>
 | 
						|
 | 
						|
#undef _PyImport_Inittab 
 | 
						|
 | 
						|
/* Now define our own version of it.
 | 
						|
   Hopefully someone does not have more than 1000 built-in modules */
 | 
						|
 | 
						|
struct _inittab _SwigImport_Inittab[1000];       
 | 
						|
 | 
						|
static int  swig_num_modules = 0;
 | 
						|
 | 
						|
/* Function for adding modules to Python */
 | 
						|
 | 
						|
static void swig_add_module(char *name, void (*initfunc)()) {
 | 
						|
	_SwigImport_Inittab[swig_num_modules].name = name;
 | 
						|
	_SwigImport_Inittab[swig_num_modules].initfunc = initfunc;
 | 
						|
	swig_num_modules++;
 | 
						|
	_SwigImport_Inittab[swig_num_modules].name = (char *) 0;
 | 
						|
	_SwigImport_Inittab[swig_num_modules].initfunc = 0;
 | 
						|
}				
 | 
						|
 | 
						|
/* Function to add all of Python's build in modules to our interpreter */
 | 
						|
 | 
						|
static void swig_add_builtin() {
 | 
						|
	int i = 0;
 | 
						|
	while (swig_inittab[i].name) {
 | 
						|
		swig_add_module(swig_inittab[i].name, swig_inittab[i].initfunc);
 | 
						|
  	        i++;
 | 
						|
 	}
 | 
						|
#ifdef SWIGMODINIT
 | 
						|
	SWIGMODINIT	
 | 
						|
#endif
 | 
						|
	/* Add SWIG builtin function */
 | 
						|
	swig_add_module(SWIG_name, SWIG_init);
 | 
						|
}
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
extern int Py_Main(int, char **);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
extern struct _inittab *PyImport_Inittab;
 | 
						|
 | 
						|
int
 | 
						|
main(int argc, char **argv) {
 | 
						|
	swig_add_builtin();
 | 
						|
	PyImport_Inittab = _SwigImport_Inittab;
 | 
						|
	return Py_Main(argc,argv);
 | 
						|
}
 | 
						|
 | 
						|
%}
 | 
						|
 | 
						|
 | 
						|
  
 | 
						|
 |