Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/buildsystem2/CMakeLists.txt @ 2583

Last change on this file since 2583 was 2583, checked in by rgrieder, 17 years ago
  • Use $ENV{BOOST_ROOT} to find boost if possible
  • Set TOLUA_PARSER_WORKING_DIRECTORY now defaults to ${CMAKE_RUNTIME_OUTPUT_PATH}
  • Added bin/release, bin/debug, release and debug to the Ogre library prefix paths
  • Lots of small fixes and changes
  • Property svn:eol-style set to native
File size: 2.8 KB
Line 
1PROJECT(Orxonox)
2
3CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
4
5############### Various Options #################
6
7# Keep devs from using the root directory as binary directory (messes up the source tree)
8IF(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
9  MESSAGE(FATAL_ERROR "Do not use the root directory as CMake output directory! mkdir build; cd build; cmake ..")
10ENDIF(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
11
12# This sets where to look for modules (e.g. "Find*.cmake" files)
13SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
14
15# Set binary output directories
16SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
17SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
18SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
19
20# Set Debug build to default when not having multi-config generator like msvc
21IF(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
22  SET(CMAKE_BUILD_TYPE "Debug")
23ENDIF(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
24
25############## Platform Config ##################
26
27# Configure platform specific options
28INCLUDE(ConfigPlatforms)
29
30################ Test options ###################
31
32OPTION(ENABLE_TESTS "Enable build tests.")
33IF(ENABLE_TESTS)
34  ENABLE_TESTING()
35ENDIF(ENABLE_TESTS)
36
37OPTION(NETWORK_TESTING_ENABLED "Build network testing tools: i.e. chatclient chatserver and alike.")
38OPTION(NETWORKTRAFFIC_TESTING_ENABLED "Build dummyserver4 and dummyclient4.")
39
40############### Library finding #################
41
42# Performs the search and sets the variables
43
44# Expand the next statement if newer boost versions than 1.36.1 are released
45SET(Boost_ADDITIONAL_VERSIONS 1.37 1.37.0 CACHE STRING "")
46FIND_PACKAGE(Boost 1.34 REQUIRED thread filesystem)
47FIND_PACKAGE(OGRE REQUIRED)
48FIND_PACKAGE(CEGUI REQUIRED)
49FIND_PACKAGE(ENet REQUIRED)
50FIND_PACKAGE(OpenAL REQUIRED)
51FIND_PACKAGE(ALUT REQUIRED)
52FIND_PACKAGE(OggVorbis REQUIRED)
53FIND_PACKAGE(ZLIB REQUIRED)
54FIND_PACKAGE(DirectX REQUIRED)
55
56# Require Lua 5.0 or 5.1
57FIND_PACKAGE(Lua50 QUIET)
58IF(NOT LUA50_FOUND)
59  # Remove variables set by Lua50 and try with Lua51
60  SET(LUA_INCLUDE_DIR)
61  SET(LUA_LIBRARY_lua)
62  SET(LUA_LIBRARY_lualib)
63  SET(LUA_LIBRARIES)
64  FIND_PACKAGE(Lua51 REQUIRED)
65ENDIF(NOT LUA50_FOUND)
66# Determine Lua version (Lua50 may also find Lua51)
67FILE(STRINGS "${LUA_INCLUDE_DIR}/lua.h" LUA_VERSION REGEX "LUA_VERSION")
68STRING(REGEX REPLACE "^.*\"Lua (.*)\".*$" "\\1" LUA_VERSION "${LUA_VERSION}")
69
70# QUIET: Don't require the whole tcl rat tail
71FIND_PACKAGE(TCL QUIET)
72IF(NOT TCL_FOUND)
73  MESSAGE(FATAL_ERROR "Tcl was not found.")
74ENDIF(NOT TCL_FOUND)
75
76# Hide variables created by CMake FindXX scripts
77MARK_AS_ADVANCED(
78  LUA_LIBRARY_lua
79  LUA_LIBRARY_lualib
80  OPENAL_INCLUDE_DIR
81  OPENAL_LIBRARY
82)
83
84############### Orxonox Source ##################
85
86ADD_SUBDIRECTORY(src)
87ADD_SUBDIRECTORY(bin)
Note: See TracBrowser for help on using the repository browser.