Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/libraries/util/UtilPrereqs.h @ 9550

Last change on this file since 9550 was 9550, checked in by landauf, 11 years ago

merged testing branch back to trunk. unbelievable it took me 13 months to finish this chore…

  • Property svn:eol-style set to native
File size: 3.6 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 *      Fabian 'x3n' Landau
26 *
27 */
28
29/**
30@file
31@brief
32    Shared library macros, enums, constants and forward declarations for the util library
33*/
34
35#ifndef _UtilPrereqs_H__
36#define _UtilPrereqs_H__
37
38#include "OrxonoxConfig.h"
39
40//-----------------------------------------------------------------------
41// Shared library settings
42//-----------------------------------------------------------------------
43
44#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined( UTIL_STATIC_BUILD )
45#  ifdef UTIL_SHARED_BUILD
46#    define _UtilExport __declspec(dllexport)
47#  else
48#    if defined( __MINGW32__ )
49#      define _UtilExport
50#    else
51#      define _UtilExport __declspec(dllimport)
52#    endif
53#  endif
54#  define _UtilPrivate
55#elif defined (ORXONOX_GCC_VISIBILITY)
56#  define _UtilExport  __attribute__ ((visibility("default")))
57#  define _UtilPrivate __attribute__ ((visibility("hidden")))
58#else
59#  define _UtilExport
60#  define _UtilPrivate
61#endif
62
63//-----------------------------------------------------------------------
64// Enums
65//-----------------------------------------------------------------------
66
67namespace orxonox
68{
69    namespace ScopeID
70    {
71        //!A list of available scopes for the Scope template.
72        enum Value
73        {
74            Root,
75            Graphics
76        };
77    }
78}
79
80//-----------------------------------------------------------------------
81// Forward declarations
82//-----------------------------------------------------------------------
83
84namespace orxonox
85{
86    class AdditionalContextListener;
87    class BaseWriter;
88    class Clock;
89    class ConsoleWriter;
90    class Exception;
91    class ExprParser;
92    class LogWriter;
93    class MemoryWriter;
94    class MultiType;
95    class OutputListener;
96    class OutputManager;
97    class OutputStream;
98    template <ScopeID::Value>
99    class Scope;
100    template <class, ScopeID::Value>
101    class ScopedSingleton;
102    class ScopeListener;
103    template <class T>
104    class SharedPtr;
105    class SignalHandler;
106    template <class T>
107    class Singleton;
108    class SubcontextOutputListener;
109    class SubString;
110}
111
112namespace Ogre
113{
114    class Radian;
115    class Degree;
116    class Vector2;
117    class Vector3;
118    class Vector4;
119    class Matrix3;
120    class Matrix4;
121    class Quaternion;
122    class ColourValue;
123}
124namespace orxonox
125{
126    using Ogre::Radian;
127    using Ogre::Degree;
128    using Ogre::Vector2;
129    using Ogre::Vector3;
130    using Ogre::Vector4;
131    using Ogre::Matrix3;
132    using Ogre::Matrix4;
133    using Ogre::Quaternion;
134    using Ogre::ColourValue;
135}
136
137namespace Loki
138{
139    class ScopeGuardImplBase;
140    typedef const ScopeGuardImplBase& ScopeGuard;
141}
142
143// Just so you don't have to include StringUtils.h everywhere just for this
144namespace orxonox
145{
146    extern _UtilExport std::string BLANKSTRING;
147}
148
149
150#endif /* _UtilPrereqs_H__ */
Note: See TracBrowser for help on using the repository browser.