00001 /*************************************************************************** 00002 * pythonconfig.h 00003 * This file is part of the KDE project 00004 * copyright (C)2004-2005 by Sebastian Sauer (mail@dipe.org) 00005 * 00006 * This program is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Library General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2 of the License, or (at your option) any later version. 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Library General Public License for more details. 00014 * You should have received a copy of the GNU Library General Public License 00015 * along with this program; see the file COPYING. If not, write to 00016 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 * Boston, MA 02110-1301, USA. 00018 ***************************************************************************/ 00019 00020 #ifndef KROSS_PYTHON_CONFIG_H 00021 #define KROSS_PYTHON_CONFIG_H 00022 00023 // Prevent warnings 00024 #if defined(_XOPEN_SOURCE) 00025 #undef _XOPEN_SOURCE 00026 #endif 00027 00028 // The Python.h needs to be included first. 00029 #include <Python.h> 00030 #include <object.h> 00031 #include <compile.h> 00032 #include <eval.h> 00033 00034 // Include the PyCXX stuff. 00035 #include "CXX/Config.hxx" 00036 #include "CXX/Objects.hxx" 00037 #include "CXX/Extensions.hxx" 00038 00039 namespace Kross { 00040 00041 /** 00042 * The Python plugin for the \a Kross scripting framework. 00043 * 00044 * The code in this namespace manage the embedded python 00045 * interpreter and python-scripts. 00046 * 00047 * There is no dependency to e.g. the \a Kross::KexiDB 00048 * wrapper. Everything is handled through the common 00049 * \a Kross::Api bridge. Therefore this interpreter- 00050 * implementation should be able to make all defined 00051 * wrappers accessible by the python scripting 00052 * language. 00053 * 00054 * Internaly we use PyCXX - a set of classes to help 00055 * create extensions of python in the C++ language - to 00056 * access the python c api. Any python version since 00057 * 2.0 is supported. 00058 * 00059 * \author Sebastian Sauer 00060 * \sa http://www.python.org 00061 * \sa http://cxx.sourceforge.net 00062 */ 00063 namespace Python { 00064 00065 // The version of this python plugin. This will be exported 00066 // to the scripting code. That way we're able to write 00067 // scripting code for different incompatible Kross python 00068 // bindings by checking the version. You should increment 00069 // this number only if you really know what you're doing. 00070 #define KROSS_PYTHON_VERSION 1 00071 00072 // Enable kdDebug()-debugging for Kross::Python::PythonScript 00073 //#define KROSS_PYTHON_SCRIPT_CTOR_DEBUG 00074 //#define KROSS_PYTHON_SCRIPT_DTOR_DEBUG 00075 //#define KROSS_PYTHON_SCRIPT_INIT_DEBUG 00076 //#define KROSS_PYTHON_SCRIPT_FINALIZE_DEBUG 00077 //#define KROSS_PYTHON_SCRIPT_EXEC_DEBUG 00078 //#define KROSS_PYTHON_SCRIPT_CALLFUNC_DEBUG 00079 //#define KROSS_PYTHON_SCRIPT_CLASSINSTANCE_DEBUG 00080 00081 // Enable kdDebug()-debugging for Kross::Python::PythonModule 00082 //#define KROSS_PYTHON_MODULE_DEBUG 00083 00084 // Enable kdDebug()-debugging for Kross::Python::PythonExtension 00085 //#define KROSS_PYTHON_EXTENSION_CTOR_DEBUG 00086 //#define KROSS_PYTHON_EXTENSION_DTOR_DEBUG 00087 00088 //#define KROSS_PYTHON_EXTENSION_TOOBJECT_DEBUG 00089 //#define KROSS_PYTHON_EXTENSION_TOPYOBJECT_DEBUG 00090 00091 //#define KROSS_PYTHON_EXTENSION_GETATTR_DEBUG 00092 //#define KROSS_PYTHON_EXTENSION_GETATTRMETHOD_DEBUG 00093 //#define KROSS_PYTHON_EXTENSION_SETATTR_DEBUG 00094 00095 //#define KROSS_PYTHON_EXTENSION_CALL_DEBUG 00096 00097 }} 00098 00099 #endif
1.4.6