Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/buildsystem2/cmake/ConfigPlatforms.cmake @ 2590

Last change on this file since 2590 was 2590, checked in by rgrieder, 16 years ago

Added ${ORXONOX_LIBRARY_BIN_DIR} which represents the binary directory for the external dlls on windows.
Restructured concepts in bin/ dir:

  • All files in bin/Release or bin/Debug get configured and copied to the output directory. Configure means setting all the variables marked with @Var@.
  • MinSizeRel and RelWithDebInfo are considered Release versions.
  • If there is not specialised file in bin/Debug resp. bin/Release, the file in bin/ is configured and copied.
  • orxonox.ini gets configured with the available plugins (release and debug), the plugins folder and the media directory.
  • Also the debug levels have been adjusted for Debug resp. Release versions of orxonox.ini
  • When not using multi-config (debug, release, etc.) generator (like msvc or xcode), a run script called run (unix) or run.bat (windows) is configured in the root directory.
  • For tardis, ogre.cfg is copied as well due to a yet unknown bug with fonts for the ogre gui
  • moved all old style msvc project files to visual_studio folder (that only includes configured output files)
  • This commit also makes the visual studio files run in all configurations (tested only on my box).
  • Property svn:eol-style set to native
File size: 3.7 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# If you want to set specific options for your platform, simply
29# create a file called "ConfigUser.cmake" in the binary folder
30# (see at the bottom of the file)
31
32############ Misc Default Options ###############
33
34# When searching for debug libraries, this is appended to the libarary name
35SET(LIBRARY_DEBUG_POSTFIX "_d")
36# Sets where to find the binary directory of external libraries
37SET(ORXONOX_LIBRARY_BIN_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
38# Working directory for the tolua parser. Adjust for windows because lua.dll has to be there!
39SET(TOLUA_PARSER_WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
40
41OPTION(EXTRA_WARNINGS "Enable some extra warnings (heavily pollutes the output)")
42IF(EXTRA_WARNINGS)
43  SET(ORXONOX_WARNING_FLAGS "-Wextra --Wno-unsued-parameter")
44ELSE(EXTRA_WARNINGS)
45  SET(ORXONOX_WARNING_FLAGS "-Wall")
46ENDIF(EXTRA_WARNINGS)
47
48SET(ORXONOX_MEDIA_DIRECTORY "${CMAKE_SOURCE_DIR}/../media")
49# More plugins: Plugin_BSPSceneManager, Plugin_OctreeSceneManager
50# Render systems may be optional, but at least one has to be found in FindOgre
51SET(OGRE_PLUGINS RenderSystem_GL RenderSystem_Direct3D9 Plugin_ParticleFX Plugin_CgProgramManager)
52
53
54###### Default Compiler/Linker Options ##########
55# Most people use GCC to compile orxonox, so use that as default
56
57SET(CMAKE_C_FLAGS   "$ENV{CFLAGS}   ${ORXONOX_WARNING_FLAGS} -fPIC")
58SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} ${ORXONOX_WARNING_FLAGS} -fPIC")
59# These flags are added to the flags above
60SET(CMAKE_C_FLAGS_DEBUG            "    -g -ggdb")
61SET(CMAKE_CXX_FLAGS_DEBUG          "    -g -ggdb")
62SET(CMAKE_C_FLAGS_RELEASE          "-O3          -DNDEBUG")
63SET(CMAKE_CXX_FLAGS_RELEASE        "-O3          -DNDEBUG")
64SET(CMAKE_C_FLAGS_RELWITHDEBINFO   "-O2 -g -ggdb -DNDEBUG")
65SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -ggdb -DNDEBUG")
66SET(CMAKE_C_FLAGS_MINSIZEREL       "-Os          -DNDEBUG")
67SET(CMAKE_CXX_FLAGS_MINSIZEREL     "-Os          -DNDEBUG")
68
69SET(CMAKE_LD_FLAGS "$ENV{LDFLAGS}")
70SET(CMAKE_EXE_LINKER_FLAGS    " --no-undefined")
71SET(CMAKE_SHARED_LINKER_FLAGS " --no-undefined")
72SET(CMAKE_MODULE_LINKER_FLAGS " --no-undefined")
73
74# Also define macros to easily extend the compiler flags
75# Additional argument is a condition
76MACRO(ADD_CXX_FLAGS _flag _cond)
77  IF(${_cond})
78    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_flag}")
79  ENDIF(${_cond})
80ENDMACRO(ADD_CXX_FLAGS _flag)
81MACRO(ADD_C_FLAGS _flag)
82  IF(${_cond})
83    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_flag}")
84  ENDIF(${_cond})
85ENDMACRO(ADD_C_FLAGS _flag)
86
87########## Plaform Specific Config ##############
88
89# Set the platform specific options and paths
90INCLUDE(ConfigTardis)
91INCLUDE(ConfigMSVC)
92INCLUDE(ConfigMinGW)
93# User can create his own file if required
94IF(EXISTS ${CMAKE_BINARY_DIR}/ConfigUser.cmake)
95  INCLUDE(${CMAKE_BINARY_DIR}/ConfigUser)
96ENDIF(EXISTS ${CMAKE_BINARY_DIR}/ConfigUser.cmake)
Note: See TracBrowser for help on using the repository browser.