All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Config.h
Go to the documentation of this file.
1 /* Copyright (C) 2001-2009 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/plugin/Config.h
22 
23  \brief Configuration flags for the TerraLib Plugin module.
24 */
25 
26 #ifndef __TERRALIB_PLUGIN_INTERNAL_CONFIG_H
27 #define __TERRALIB_PLUGIN_INTERNAL_CONFIG_H
28 
29 // TerraLib
30 #include "../Config.h"
31 
32 /** @name Plugin Specific Macros
33  * Macros used by plugin module.
34  */
35 //@{
36 
37 /*!
38  \def TE_PLUGIN_MODULE_NAME
39 
40  \brief The module name (identifier).
41 */
42 #define TE_PLUGIN_MODULE_NAME "te.plugin"
43 
44 /*!
45  \def PLUGIN_CALL_BACK_DECLARATION
46 
47  \brief This macro should be used by C++ plugins in order to declare the exportable/callable DLL function.
48 */
49 #define PLUGIN_CALL_BACK_DECLARATION(PLUGIN_EXPORT_MACRO) \
50  extern "C" PLUGIN_EXPORT_MACRO te::plugin::Plugin* CppPluginGetInstance(const te::plugin::PluginInfo& info);
51 
52 /*!
53  \def PLUGIN_CALL_BACK_IMPL
54 
55  \brief This macro should be used by C++ plugins in order to declare the exportable/callable DLL function.
56 */
57 #define PLUGIN_CALL_BACK_IMPL(PLUGIN_CLASS_NAME) \
58  te::plugin::Plugin* CppPluginGetInstance(const te::plugin::PluginInfo& info) \
59  { \
60  return new PLUGIN_CLASS_NAME(info); \
61  }
62 
63 /*!
64  \def TE_CPPPLUGINENGINE_CODE
65 
66  \brief The plugin engine name for C++ plugins.
67 */
68 #define TE_CPPPLUGINENGINE_CODE "C++"
69 
70 /*!
71  \def TE_DEFAULT_PLUGINS_DIR
72 
73  \brief The default look up plugin dir.
74 */
75 #define TE_DEFAULT_PLUGINS_DIR "plugins"
76 
77 /*!
78  \def TE_DEFAULT_PLUGIN_FILE_NAME
79 
80  \brief The XML file name with plugin information.
81  */
82 #define TE_DEFAULT_PLUGIN_FILE_NAME "plugin_info.xml"
83 
84 /*!
85  \def TE_AUTOMATICALLY_LOAD_DEFAULT_XML_PLUGIN
86 
87  \brief If this flag is set to 1 the plugin module will start a default XML driver.
88  */
89 #define TE_AUTOMATICALLY_LOAD_DEFAULT_XML_PLUGIN 1
90 
91 //@}
92 
93 /** @name Internationalization Defines
94  * Flags for TerraLib code internationalization.
95  */
96 //@{
97 
98 /*!
99  \def TE_PLUGIN_TEXT_DOMAIN
100 
101  \brief It contains the name of the text domain used in the translation of messages in TerraLib Plugin module.
102  */
103 #define TE_PLUGIN_TEXT_DOMAIN "teplugin"
104 
105 /*!
106  \def TE_PLUGIN_TEXT_DOMAIN_DIR
107 
108  \brief It contains the translation catalog directory.
109  */
110 #define TE_PLUGIN_TEXT_DOMAIN_DIR "locale"
111 
112 /*!
113  \def TR_PLUGIN
114 
115  \brief It marks a string in order to get translated. This is a special mark used in the Plugin module of TerraLib.
116  */
117 #define TR_PLUGIN(message) TR(message, TE_PLUGIN_TEXT_DOMAIN)
118 
119 //@}
120 
121 /** @name DLL/LIB Module
122  * Flags for building TerraLib as a DLL or as a Static Library
123  */
124 //@{
125 
126 /*!
127  \def TEPLUGINEXPORT
128 
129  \brief You can use this macro in order to export/import classes and functions from this module.
130 
131  \note If you want to compile TerraLib as DLL in Windows, remember to insert TEPLUGINDLL into the project's list of defines.
132 
133  \note If you want to compile TerraLib as an Static Library under Windows, remember to insert the TEPLUGINSTATIC flag into the project list of defines.
134 */
135 #ifdef WIN32
136 
137  #ifdef _MSC_VER
138  #pragma warning( disable : 4251 )
139  #pragma warning( disable : 4275 )
140  #pragma warning( disable : 4290 )
141  #endif
142 
143  #ifdef TEPLUGINSTATIC
144  #define TEPLUGINEXPORT // Don't need to export/import... it is a static library
145  #elif TEPLUGINDLL
146  #define TEPLUGINEXPORT __declspec(dllexport) // export DLL information
147  #else
148  #define TEPLUGINEXPORT __declspec(dllimport) // import DLL information
149  #endif
150 #else
151  #define TEPLUGINEXPORT
152 #endif
153 
154 //@}
155 
156 #endif // __TERRALIB_PLUGIN_INTERNAL_CONFIG_H
157