Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/resource2/CMakeLists.txt @ 5664

Last change on this file since 5664 was 5664, checked in by rgrieder, 15 years ago
  • Moved all (as far as possible) build related CMake options and switches to src/OrxonoxConfig.cmake (new file). This should my constant problems of finding options I've created some time ago…
  • Renamed BuildConfig to CompilerConfig (since that's what it has become now).
  • Moved all installation related options and paths to cmake/InstallConfig.cmake (new file)
  • Note: I moved the very basic options to the root CMLs like default paths (bin, lib, doc, etc.), output directories and configuration type.

Actual code changes are absolutely minimal, maybe a few lines or so.

  • Property svn:eol-style set to native
File size: 4.0 KB
Line 
1 #
2 #             ORXONOX - the hottest 3D action shooter ever to exist
3 #                             > www.orxonox.net <
4 #
5 #        This program is free software; you can redistribute it and/or
6 #         modify it under the terms of the GNU General Public License
7 #        as published by the Free Software Foundation; either version 2
8 #            of the License, or (at your option) any later version.
9 #
10 #       This program is distributed in the hope that it will be useful,
11 #        but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #                 GNU General Public License for more details.
14 #
15 #   You should have received a copy of the GNU General Public License along
16 #      with this program; if not, write to the Free Software Foundation,
17 #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18 #
19 #
20 #  Author:
21 #    Reto Grieder
22 #  Description:
23 #    Configures some basics and controls the configuration scripts
24 #
25
26CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
27
28# Keep devs from using the root directory as binary directory (messes up the source tree)
29IF(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
30  MESSAGE(FATAL_ERROR "Please do not use the root directory as CMake output directory!
31  mkdir build; cd build; cmake ..
32  And you will have to clean the source directory by deleting CMakeCache.txt and the folder CMakeFiles")
33ENDIF()
34
35PROJECT(Orxonox C CXX)
36
37################ General Config #################
38
39# Version info
40SET(ORXONOX_VERSION_MAJOR 0)
41SET(ORXONOX_VERSION_MINOR 0)
42SET(ORXONOX_VERSION_PATCH 3)
43SET(ORXONOX_VERSION 0.0.3)
44SET(ORXONOX_VERSION_NAME "Arcturus")
45
46# Standard path suffixes
47SET(DEFAULT_RUNTIME_PATH bin)
48SET(DEFAULT_LIBRARY_PATH lib)
49SET(DEFAULT_ARCHIVE_PATH lib/static)
50SET(DEFAULT_DOC_PATH     doc)
51SET(DEFAULT_DATA_PATH    data)
52SET(DEFAULT_CONFIG_PATH  config)
53SET(DEFAULT_LOG_PATH     log)
54
55# Set output directories
56SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_RUNTIME_PATH})
57SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_LIBRARY_PATH})
58SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_ARCHIVE_PATH})
59SET(CMAKE_DOC_OUTPUT_DIRECTORY     ${CMAKE_BINARY_DIR}/${DEFAULT_DOC_PATH})
60# Data directories are only inputs, no delclaration here
61SET(CMAKE_CONFIG_OUTPUT_DIRECTORY  ${CMAKE_BINARY_DIR}/${DEFAULT_CONFIG_PATH})
62SET(CMAKE_LOG_OUTPUT_DIRECTORY     ${CMAKE_BINARY_DIR}/${DEFAULT_LOG_PATH})
63
64# Sets where to find the external libraries like OgreMain.dll at runtime
65# On Unix you should not have to change this at all.
66# This only applies to development runs in the build tree
67SET(RUNTIME_LIBRARY_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
68
69# Take care of some CMake 2.6.0 leftovers
70MARK_AS_ADVANCED(EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH)
71
72# This sets where to look for CMake modules (e.g. "Find*.cmake" files)
73SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
74
75# Set Debug build to default when not having multi-config generator like msvc
76IF(NOT CMAKE_CONFIGURATION_TYPES)
77  IF(NOT CMAKE_BUILD_TYPE)
78    SET(CMAKE_BUILD_TYPE Debug CACHE STRING
79        "Build types are: Debug, Release, MinSizeRel, RelWithDebInfo" FORCE)
80  ENDIF()
81  MARK_AS_ADVANCED(CLEAR CMAKE_BUILD_TYPE)
82
83  MESSAGE(STATUS "*** Build type is ${CMAKE_BUILD_TYPE} ***")
84ELSE()
85  IF(CMAKE_BUILD_TYPE)
86    SET(CMAKE_BUILD_TYPE CACHE STRING FORCE)
87  ENDIF()
88  MARK_AS_ADVANCED(CMAKE_BUILD_TYPE)
89ENDIF()
90
91########### Subfolders and Subscripts ###########
92
93# Library finding
94INCLUDE(LibraryConfig)
95
96# General build and compiler options and configurations
97INCLUDE(CompilerConfig)
98
99# Configure installation paths and options
100INCLUDE(InstallConfig)
101
102# Configure data directory location and installation
103ADD_SUBDIRECTORY(data)
104
105# Create the actual project
106ADD_SUBDIRECTORY(src)
107
108# Configure the binary output directory. Do this after src!
109ADD_SUBDIRECTORY(bin)
110
111# Last but not least: Try to make a doc target with Doxygen
112ADD_SUBDIRECTORY(doc)
Note: See TracBrowser for help on using the repository browser.