Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/buildsystem3/src/SpecialConfig.h.in @ 2702

Last change on this file since 2702 was 2702, checked in by rgrieder, 15 years ago

Completed work on installation:

  • The CMake switch INSTALL_COPYABLE tells whether you will be able to move the installed directory or not. If TRUE then all folders, including log and config directory, will be put into the CMAKE_INSTALL_PREFIX. Furthermore, relative paths are used, which get resolved at run time.
  • If INSTALL_COPYABLE is set to FALSE, the standard operating system directories will be used. That also means on Windows files get written to the Application Data/.orxonox folder instead of Program Files/Orxonox
  • Default configuration is INSTALL_COPYABLE=TRUE for Windows and FALSE for Unix
  • Split OrxonoxConfig.h.in in two to avoid complete recompiles when changing only a path or INSTALL_COPYABLE
  • Added a global constant character: CP_SLASH which stands for cross platform slash, meaning '/' on Unix and '
    ' on Windows
  • Core class now has methods getFooPath(), getFooPathString() and getFooPathPOSIXString() where Foo can be Media, Log or Config
  • getFooPathPOSIXString() will always return a directory formatted with slashes, even on Windows
  • getFooPath() returns a reference to the boost::filesystem::path
  • boost/filesystem.hpp does not get included to Core.h because it has a very large rat tail
  • The platform specific directory stuff gets done in Core::postMainInitialisation()
  • Adjusted all classes using the media path
  • Property svn:eol-style set to native
File size: 3.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
36    @GENERATED_FILE_COMMENT@
37 */
38
39#ifndef _SpecialConfig_H__
40#define _SpecialConfig_H__
41
42/* Set whether we must suffix "ceguilua/" for the CEGUILua.h include */
43#cmakedefine CEGUILUA_USE_INTERNAL_LIBRARY
44
45/* Defined if a precompiled depdency package was used. We then copy all libraries
46   too when installing. */
47#cmakedefine DEPENDENCY_PACKAGE_ENABLE
48
49/* Orxonox either gets installed to the system or just into a folder.
50   The latter uses relative paths. */
51#cmakedefine INSTALL_COPYABLE
52
53/* Using MSVC or XCode IDE */
54#cmakedefine CMAKE_CONFIGURATION_TYPES
55
56/* Macros used in the next section */
57#define MACRO_CONCATENATE(str1, str2) str1##str2
58#define MACRO_QUOTEME_AUX(x) #x
59#define MACRO_QUOTEME(x) MACRO_QUOTEME_AUX(x)
60
61/* Handle default ConfigValues */
62namespace orxonox
63{
64    const char* const ORXONOX_RUNTIME_INSTALL_PATH("@ORXONOX_RUNTIME_INSTALL_PATH@");
65    const char* const ORXONOX_MEDIA_INSTALL_PATH  ("@ORXONOX_MEDIA_INSTALL_PATH@");
66    /* Config and Log path might be relative because they could be user and therefore runtime dependent */
67    const char* const ORXONOX_CONFIG_INSTALL_PATH ("@ORXONOX_CONFIG_INSTALL_PATH@");
68    const char* const ORXONOX_LOG_INSTALL_PATH    ("@ORXONOX_LOG_INSTALL_PATH@");
69
70    const char* const ORXONOX_MEDIA_DEV_PATH      ("@CMAKE_MEDIA_OUTPUT_DIRECTORY@");
71#ifdef CMAKE_CONFIGURATION_TYPES
72    const char* const ORXONOX_CONFIG_DEV_PATH     ("@CMAKE_CONFIG_OUTPUT_DIRECTORY@/" MACRO_QUOTEME(CMAKE_BUILD_TYPE));
73    const char* const ORXONOX_LOG_DEV_PATH        ("@CMAKE_LOG_OUTPUT_DIRECTORY@/"    MACRO_QUOTEME(CMAKE_BUILD_TYPE));
74#else
75    const char* const ORXONOX_CONFIG_DEV_PATH     ("@CMAKE_CONFIG_OUTPUT_DIRECTORY@");
76    const char* const ORXONOX_LOG_DEV_PATH        ("@CMAKE_LOG_OUTPUT_DIRECTORY@");
77#endif
78   
79    /* OGRE Plugins */
80#ifdef NDEBUG
81    const char* const ORXONOX_OGRE_PLUGINS("@OGRE_PLUGINS_RELEASE@");
82#  ifdef DEPENDENCY_PACKAGE_ENABLE
83    const char* const ORXONOX_OGRE_PLUGINS_FOLDER(".");
84#  else
85    const char* const ORXONOX_OGRE_PLUGINS_FOLDER("@OGRE_PLUGINS_FOLDER_RELEASE@");
86#  endif
87#else
88    const char* const ORXONOX_OGRE_PLUGINS("@OGRE_PLUGINS_DEBUG@");
89#  ifdef DEPENDENCY_PACKAGE_ENABLE
90    const char* const ORXONOX_OGRE_PLUGINS_FOLDER(".");
91#  else
92    const char* const ORXONOX_OGRE_PLUGINS_FOLDER("@OGRE_PLUGINS_FOLDER_DEBUG@");
93#  endif
94#endif
95}
96
97#endif /* _SpecialConfig_H__ */
Note: See TracBrowser for help on using the repository browser.