blob: 6b8bb25d0057d66f56801e060272cab430985e77 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
/***************************************************************************
* krossconfig.h
* This file is part of the KDE project
* copyright (C)2004-2005 by Sebastian Sauer (mail@dipe.org)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
* You should have received a copy of the GNU Library General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
***************************************************************************/
#ifndef KROSS_MAIN_KROSSCONFIG_H
#define KROSS_MAIN_KROSSCONFIG_H
#include <qstring.h>
/**
* The Kross scripting bridge to embed scripting functionality
* into an application.
*
* - abstract API to access the scripting functionality.
* - interpreter independend to be able to decide on runtime
* if we like to use the python, kjs (KDE JavaScript) or
* whatever scripting interpreter.
* - flexibility by beeing able to connect different
* scripting interpreters together into something like
* a "working chain" (e.g. python-script script1 spends
* some functionality the kjs-script script2 likes to
* use.
* - transparently bridge functionality wrappers like
* \a Kross::KexiDB together with interpreters like \a Kross::Python.
* - Introspection where needed to be able to manipulate
* behaviours and functionality on runtime.
* - Qt/KDE based, so use the extended techs both spends.
* - integrate nicly as powerfull scripting system into the
* Kexi application.
*
* \author Sebastian Sauer
* \sa http://www.koffice.org/kexi
* \sa http://www.dipe.org/kross
*/
namespace Kross {
/// Debugging enabled.
#define KROSS_DEBUG_ENABLED
#ifdef KROSS_DEBUG_ENABLED
/**
* Debugging function.
*/
void krossdebug(const QString &s);
/**
* Warning function.
*/
void krosswarning(const QString &s);
#else
// Define these to an empty statement if debugging is disabled.
#define krossdebug(x)
#define krosswarning(x)
#endif
/**
* The common Kross API used as common codebase.
*
* The API spends \a Kross::Api::Object and more specialized
* classes to bridge other Kross parts together. Interaction
* between objects got wrapped at runtime and introspection-
* functionality enables dynamic manipulations.
* The proxy functionality prevents cross-dependencies
* between Kross parts like the \a Kross::Python implementation
* and the \a Kross::KexiDB wrapper.
*
* \author Sebastian Sauer
*/
namespace Api {
//#define KROSS_API_OBJECT_CTOR_DEBUG
//#define KROSS_API_OBJECT_DTOR_DEBUG
//#define KROSS_API_OBJECT_ADDCHILD_DEBUG
//#define KROSS_API_OBJECT_REMCHILD_DEBUG
//#define KROSS_API_OBJECT_CALL_DEBUG
//#define KROSS_API_EVENT_CALL_DEBUG
//#define KROSS_API_CALLABLE_CALL_DEBUG
//#define KROSS_API_CALLABLE_CHECKARG_DEBUG
//#define KROSS_API_EVENTSLOT_CALL_DEBUG
//#define KROSS_API_EVENTSIGNAL_CALL_DEBUG
// The name of the interpreter's library. Those library got loaded
// dynamicly during runtime. Comment out to disable compiling of
// the interpreter-plugin or to hardcode the location of the lib
// like I did at the following line.
//#define KROSS_PYTHON_LIBRARY "/home/snoopy/cvs/kde/trunk/koffice/lib/kross/python/krosspython.la"
#define KROSS_PYTHON_LIBRARY "krosspython"
#define KROSS_RUBY_LIBRARY "krossruby"
}
}
#endif
|