All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Config.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 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 "share/terralib/plugins"
76 
77 /*!
78  \def TE_DEFAULT_PLUGIN_EXTENSION
79 
80  \brief The default extension for plugins description files.
81 */
82 #define TE_DEFAULT_PLUGIN_EXTENSION ".teplg"
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 DLL/LIB Module
94  * Flags for building TerraLib as a DLL or as a Static Library
95  */
96 //@{
97 
98 /*!
99  \def TEPLUGINEXPORT
100 
101  \brief You can use this macro in order to export/import classes and functions from this module.
102 
103  \note If you want to compile TerraLib as DLL in Windows, remember to insert TEPLUGINDLL into the project's list of defines.
104 
105  \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.
106 */
107 #ifdef WIN32
108 
109  #ifdef _MSC_VER
110  #pragma warning( disable : 4251 )
111  #pragma warning( disable : 4275 )
112  #pragma warning( disable : 4290 )
113  #endif
114 
115  #ifdef TEPLUGINSTATIC
116  #define TEPLUGINEXPORT // Don't need to export/import... it is a static library
117  #elif TEPLUGINDLL
118  #define TEPLUGINEXPORT __declspec(dllexport) // export DLL information
119  #else
120  #define TEPLUGINEXPORT __declspec(dllimport) // import DLL information
121  #endif
122 #else
123  #define TEPLUGINEXPORT
124 #endif
125 
126 //@}
127 
128 #endif // __TERRALIB_PLUGIN_INTERNAL_CONFIG_H
129