Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/buildsystem2/src/OrxonoxConfig.h.in @ 2645

Last change on this file since 2645 was 2645, checked in by rgrieder, 15 years ago
  • Bugfix: CMake searches the install path per default when finding libraries. That means having Orxonox built my MSVC already installed will screw your mingw compilation.

—> Removed install path from the search paths for Windows

  • Bugfix: Media path default value was still pointing to the development media directory.

Tested mingw and msvc 2008 binaries on another windows xp box (no installed depdencies, no visual studio, no mingw installed, no DirectX SDK, just DX9.0c). It runs without initial orxonox.ini, as should be the case anyway.
Now its time to test this on Linux, though there will be files written to usr/bin

  • Property svn:eol-style set to native
File size: 6.0 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 *   Original code: OgrePlatform.h, licensed under the LGPL. The code
28 *   has changed almost completely though.
29 *
30 *   Caution: Do not configure this file CMake configuration (Debug, Release, etc.)
31 *            dependent! XCode and Visual Studio have the same file for all.
32 *
33 */
34
35/**
36 @file
37 @brief
38    Various constants for compiler, architecture and platform.
39
40    @GENERATED_FILE_COMMENT@
41 */
42
43#ifndef _OrxonoxConfig_H__
44#define _OrxonoxConfig_H__
45
46/*---------------------------------
47 * Platform and compiler related options
48 *-------------------------------*/
49#cmakedefine ORXONOX_PLATFORM_WINDOWS
50#cmakedefine ORXONOX_PLATFORM_LINUX
51#cmakedefine ORXONOX_PLATFORM_APPLE
52#cmakedefine ORXONOX_PLATFORM_UNIX /* Apple and Linux */
53
54/* Determine compiler and set ORXONOX_COMP_VER */
55#if defined( _MSC_VER )
56#  define ORXONOX_COMPILER_MSVC
57#  define ORXONOX_COMP_VER _MSC_VER
58
59#elif defined( __GNUC__ )
60#  define ORXONOX_COMPILER_GCC
61#  define ORXONOX_COMP_VER (((__GNUC__)*100) + \
62        (__GNUC_MINOR__*10) + \
63        __GNUC_PATCHLEVEL__)
64#  if defined(__MINGW32__)
65#    define ORXONOX_COMPILER_MINGW
66#  endif
67
68#elif defined( __BORLANDC__ )
69#  define ORXONOX_COMPILER_BORLAND
70#  define ORXONOX_COMP_VER __BCPLUSPLUS__
71
72#else
73#  pragma error "No known compiler. Abort!"
74
75#endif
76
77/* Endianness */
78#cmakedefine ORXONOX_BIG_ENDIAN
79#cmakedefine ORXONOX_LITTLE_ENDIAN
80
81/* Architecture */
82#cmakedefine ORXONOX_ARCH_32
83#cmakedefine ORXONOX_ARCH_64
84
85/* See if we can use __forceinline or if we need to use __inline instead */
86#cmakedefine HAVE_FORCEINLINE
87#ifdef HAVE_FORCEINLINE
88#  define FORCEINLINE __forceinline
89#else
90#  define FORCEINLINE __inline
91#endif
92
93/* Try to define function information */
94#ifndef __FUNCTIONNAME__
95#  ifdef ORXONOX_COMPILER_BORLAND
96#    define __FUNCTIONNAME__ __FUNC__
97#  elif defined(ORXONOX_COMPILER_GCC)
98#    define __FUNCTIONNAME__ __PRETTY_FUNCTION__
99#  elif defined(ORXONOX_COMPILER_MSVC)
100#    define __FUNCTIONNAME__ __FUNCTION__
101#  else
102#    define __FUNCTIONNAME__
103#  endif
104#endif
105
106
107/*---------------------------------
108 * Version information
109 *-------------------------------*/
110#define ORXONOX_VERSION_MAJOR @ORXONOX_VERSION_MAJOR@
111#define ORXONOX_VERSION_MINOR @ORXONOX_VERSION_MINOR@
112#define ORXONOX_VERSION_PATCH @ORXONOX_VERSION_PATCH@
113#define ORXONOX_VERSION_NAME "@ORXONOX_VERSION_NAME@"
114
115#define ORXONOX_VERSION ((ORXONOX_VERSION_MAJOR << 16) | (ORXONOX_VERSION_MINOR << 8) | ORXONOX_VERSION_PATCH)
116
117
118/*---------------------------------
119 * Unix settings
120 *-------------------------------*/
121#ifdef ORXONOX_PLATFORM_UNIX
122
123/* TODO: Check what this actually is and whether we need it or not */
124#if 0
125#  ifdef ORXONOX_PLATFORM_APPLE
126#    define ORXONOX_PLATFORM_LIB "OrxonoxPlatform.bundle"
127#  else
128/* ORXONOX_PLATFORM_LINUX */
129#    define ORXONOX_PLATFORM_LIB "libOrxonoxPlatform.so"
130#  endif
131#endif
132
133#endif /* Patform Unix */
134
135
136/*---------------------------------
137 * Apple Settings
138 *-------------------------------*/
139
140
141/*---------------------------------
142 * Includes
143 *-------------------------------*/
144/* Define the english written operators like and, or, xor
145 * This is C++ standard, but the Microsoft compiler doesn't define them. */
146#cmakedefine HAVE_CISO646
147#ifdef HAVE_CISO646
148#  include <ciso646>
149#endif
150
151#cmakedefine HAVE_CSTDINT
152#ifdef HAVE_CSTDINT
153#  include <cstdint>
154#elif defined(ORXONOX_COMPILER_MSVC)
155typedef __int8            int8_t;
156typedef __int16           int16_t;
157typedef __int32           int32_t;
158typedef __int64           int64_t;
159typedef unsigned __int8   uint8_t;
160typedef unsigned __int16  uint16_t;
161typedef unsigned __int32  uint32_t;
162typedef unsigned __int64  uint64_t;
163#endif
164
165#cmakedefine HAVE_CSTDDEF
166#ifdef HAVE_CSTDDEF
167#  include <cstddef>
168#endif
169
170/* Visual Leak Detector looks for memory leaks */
171#cmakedefine ACTIVATE_VISUAL_LEAK_DETECTOR
172#ifdef ACTIVATE_VISUAL_LEAK_DETECTOR
173#  include <vld.h>
174#endif
175
176
177/*---------------------------------
178 * Various Settings
179 *-------------------------------*/
180/* Set whether we must suffix "ceguilua/" for the CEGUILua.h include */
181#cmakedefine CEGUILUA_USE_INTERNAL_LIBRARY
182
183/* Defined if a precompiled depdency package was used. We then copy all libraries
184   too when installing. */
185#cmakedefine USE_DEPENDENCY_PACKAGE
186
187/* Handle default ConfigValues */
188namespace orxonox
189{
190#ifdef ORXONOX_PLATFORM_WINDOWS
191    const char* const ORXONOX_MEDIA_PATH("../media");
192#elif defined(ORXONOX_PLATFORM_LINUX)
193    const char* const ORXONOX_MEDIA_PATH("../share/orxonox");
194#else
195    /* TODO: Apple? */
196    const char* const ORXONOX_MEDIA_PATH("../share/orxonox");
197#endif
198   
199#ifdef NDEBUG
200    const char* const ORXONOX_OGRE_PLUGINS("@OGRE_PLUGINS_RELEASE@");
201#  ifdef USE_DEPENDENCY_PACKAGE
202    const char* const ORXONOX_OGRE_PLUGINS_FOLDER(".");
203#  elif
204    const char* const ORXONOX_OGRE_PLUGINS_FOLDER("@OGRE_PLUGINS_FOLDER_RELEASE@");
205#  endif
206#else
207    const char* const ORXONOX_OGRE_PLUGINS("@OGRE_PLUGINS_DEBUG@");
208#  ifdef USE_DEPENDENCY_PACKAGE
209    const char* const ORXONOX_OGRE_PLUGINS_FOLDER(".");
210#  elif
211    const char* const ORXONOX_OGRE_PLUGINS_FOLDER("@OGRE_PLUGINS_FOLDER_DEBUG@");
212#  endif
213#endif
214}
215
216
217#endif /* _OrxonoxConfig_H__ */
Note: See TracBrowser for help on using the repository browser.