Kross
krossconfig.h
Go to the documentation of this file.00001 /*************************************************************************** 00002 * krossconfig.h 00003 * This file is part of the KDE project 00004 * copyright (C)2004-2006 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_MAIN_KROSSCONFIG_H 00021 #define KROSS_MAIN_KROSSCONFIG_H 00022 00023 #include <kross/core/kross_export.h> 00024 00025 #include <QtCore/QString> 00026 #include <QtCore/QMetaType> 00027 00028 namespace Kross { 00029 00030 // Debugging enabled. Comment the line out to disable all kind of debugging. 00031 #define KROSS_DEBUG_ENABLED 00032 00033 #ifdef KROSS_DEBUG_ENABLED 00034 00038 KROSSCORE_EXPORT void krossdebug(const QString &s); 00039 00043 KROSSCORE_EXPORT void krosswarning(const QString &s); 00044 00045 #else 00046 // Define these to an empty statement if debugging is disabled. 00047 #define krossdebug(x) 00048 #define krosswarning(x) 00049 #endif 00050 00051 // Some more debug switches. 00052 //#define KROSS_OBJECT_METACALL_DEBUG 00053 //#define KROSS_METATYPE_DEBUG 00054 //#define KROSS_INTERPRETER_DEBUG 00055 //#define KROSS_ACTION_DEBUG 00056 //#define KROSS_ACTIONCOLLECTION_DEBUG 00057 00058 // The version number of Kross. For example the interpreters use 00059 // it do be sure there are linked against the correct core version 00060 // and if the numbers don't match, the interpreter is not loaded. 00061 #define KROSS_VERSION 10 00062 00063 // The export macro for interpreter plugins. 00064 #define KROSS_EXPORT_INTERPRETER( InterpreterImpl ) \ 00065 extern "C" { \ 00066 KDE_EXPORT void* krossinterpreter(int version, Kross::InterpreterInfo* info) { \ 00067 if(version != KROSS_VERSION) { \ 00068 Kross::krosswarning(QString("Interpreter skipped cause provided version %1 does not match expected version %2.").arg(version).arg(KROSS_VERSION)); \ 00069 return 0; \ 00070 } \ 00071 return new InterpreterImpl(info); \ 00072 } \ 00073 } 00074 00075 // The name of the interpreter's library. Those library got loaded 00076 // dynamically during runtime. Comment out to disable compiling of 00077 // the interpreter-plugin or to hardcode the location of the lib 00078 // like I did at the following line. 00079 //#define KROSS_PYTHON_LIBRARY "/home/kde4/koffice/_build/lib/krosspython.la" 00080 #define KROSS_PYTHON_LIBRARY "krosspython" 00081 #define KROSS_RUBY_LIBRARY "krossruby" 00082 #define KROSS_KJS_LIBRARY "krosskjs" 00083 #define KROSS_JAVA_LIBRARY "libkrossjava" 00084 #define KROSS_FALCON_LIBRARY "krossfalcon" 00085 #define KROSS_QTSCRIPT_LIBRARY "krossqts" 00086 00087 } 00088 00089 #endif 00090