Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/mergeFS18/src/SpecialConfig.h.in @ 12390

Last change on this file since 12390 was 11016, checked in by landauf, 9 years ago

Added config value to PluginManager to define whether a dereferenced plugin should be completely unloaded (i.e. the shared library is closed) or merely deactivated (i.e. the library remains in the process, but Identifiers and other framework components are removed).
This option is true by default on tardis machines because there it seems impossible to completely unload a shared library due to the use of STB_GNU_UNIQUE which prevents that dlclose() unloads the library. This caused errors when a plugin should have been reloaded, e.g. when the pong level was restarted.

  • Property svn:eol-style set to native
File size: 4.4 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Reto Grieder
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29/**
30@file
31@brief
32    Various constants and options that only affect very little code.
33@note
34    This is merely to avoid recompiling everything when only a path changes.
35@remarks
36    @GENERATED_FILE_COMMENT@
37*/
38
39#ifndef _SpecialConfig_H__
40#define _SpecialConfig_H__
41
42#include "OrxonoxConfig.h"
43
44#cmakedefine DEPENDENCY_PACKAGE_ENABLE      ///< Defined if a precompiled depdency package was used. We then copy all libraries too when installing.
45
46#cmakedefine INSTALL_COPYABLE               ///< Orxonox either gets installed to the system or just into a folder. The latter uses relative paths.
47
48#cmakedefine CMAKE_CONFIGURATION_TYPES      ///< Using MSVC or XCode IDE
49
50#cmakedefine DBGHELP_FOUND                  ///< If DbgHelp was found on windows
51
52#cmakedefine ORXONOX_USE_WINMAIN            ///< Whether or not the console window is started as well
53
54#cmakedefine DO_NOT_UNLOAD_PLUGINS          ///< If defined then plugins are not unloaded (but merely deactivated) when the reference count drops to zero.
55
56// Handle default ConfigValues
57namespace orxonox { namespace specialConfig
58{
59    // DEFAULT RELATIVE PATHS (might not be used at all)
60    const char defaultRuntimePath[] = "@DEFAULT_RUNTIME_PATH@";
61    const char defaultLibraryPath[] = "@DEFAULT_LIBRARY_PATH@";
62    const char defaultArchivePath[] = "@DEFAULT_ARCHIVE_PATH@";
63    const char defaultModulePath[]  = "@DEFAULT_MODULE_PATH@";
64    const char defaultPluginPath[]  = "@DEFAULT_PLUGIN_PATH@";
65    const char defaultDocPath[]     = "@DEFAULT_DOC_PATH@";
66    const char defaultDataPath[]    = "@DEFAULT_DATA_PATH@";
67    const char defaultConfigPath[]  = "@DEFAULT_CONFIG_PATH@";
68    const char defaultLogPath[]     = "@DEFAULT_LOG_PATH@";
69
70#ifndef INSTALL_COPYABLE
71    // INSTALLATION PATHS
72    const char dataInstallDirectory[]       = "@CMAKE_INSTALL_PREFIX@/@DATA_INSTALL_DIRECTORY@";
73    const char moduleInstallDirectory[]     = "@CMAKE_INSTALL_PREFIX@/@MODULE_INSTALL_DIRECTORY@";
74    const char pluginInstallDirectory[]     = "@CMAKE_INSTALL_PREFIX@/@PLUGIN_INSTALL_DIRECTORY@";
75#endif
76
77    // DEVELOPMENT RUN PATHS
78    const char dataDevDirectory[]           = "@DATA_DIRECTORY@";
79    const char externalDataDevDirectory[]   = "@EXTERNAL_DATA_DIRECTORY@";
80#ifdef CMAKE_CONFIGURATION_TYPES
81    const char moduleDevDirectory[]         = "@CMAKE_MODULE_OUTPUT_DIRECTORY@/" CMAKE_INTDIR;
82    const char pluginDevDirectory[]         = "@CMAKE_PLUGIN_OUTPUT_DIRECTORY@/" CMAKE_INTDIR;
83    const char configDevDirectory[]         = "@CMAKE_CONFIG_OUTPUT_DIRECTORY@/" CMAKE_INTDIR;
84    const char logDevDirectory[]            = "@CMAKE_LOG_OUTPUT_DIRECTORY@/"    CMAKE_INTDIR;
85#else
86    const char moduleDevDirectory[]         = "@CMAKE_MODULE_OUTPUT_DIRECTORY@";
87    const char pluginDevDirectory[]         = "@CMAKE_PLUGIN_OUTPUT_DIRECTORY@";
88    const char configDevDirectory[]         = "@CMAKE_CONFIG_OUTPUT_DIRECTORY@";
89    const char logDevDirectory[]            = "@CMAKE_LOG_OUTPUT_DIRECTORY@";
90#endif
91
92#ifdef DEPENDENCY_PACKAGE_ENABLE
93    const char dependencyLibraryDirectory[] = "@DEP_LIBRARY_DIR@";
94#endif
95
96    // Module and plugin extension
97    const char moduleExtension[] = "@ORXONOX_MODULE_EXTENSION@";
98    const char pluginExtension[] = "@ORXONOX_PLUGIN_EXTENSION@";
99
100    // OGRE PLUGINS
101#ifdef NDEBUG
102    const char ogrePlugins[] = "@OGRE_PLUGINS_RELEASE@";
103    const char ogrePluginsDirectory[] = "@OGRE_PLUGINS_FOLDER_RELEASE@";
104#else
105    const char ogrePlugins[] = "@OGRE_PLUGINS_DEBUG@";
106    const char ogrePluginsDirectory[] = "@OGRE_PLUGINS_FOLDER_DEBUG@";
107#endif
108} }
109
110#endif /* _SpecialConfig_H__ */
Note: See TracBrowser for help on using the repository browser.