Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

Visual Studio generator working for all build types. Compiles but does not run yet.

  • Had to define some export symbols
  • tinyxml and cpptcl have to be linked statically
  • some other libraries can be linked shared that were linked statically for windows (now for mingw only)
  • added two macros: ADD_CXX_FLAG(_flag _condition) and ADD_C_FLAG(_flag _condition)
  • Property svn:eol-style set to native
File size: 3.1 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)
47# With MSVC, automatic linking is performed for boost. So wee need to tell
48# the linker where to find them. Also note that when running FindBoost for the
49# first time, it will set ${Boost_LIBRARIES} to "" but afterwards to the libs.
50IF (MSVC)
51  LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
52ENDIF (MSVC)
53FIND_PACKAGE(OGRE REQUIRED)
54FIND_PACKAGE(CEGUI REQUIRED)
55FIND_PACKAGE(ENet REQUIRED)
56FIND_PACKAGE(OpenAL REQUIRED)
57FIND_PACKAGE(ALUT REQUIRED)
58FIND_PACKAGE(OggVorbis REQUIRED)
59FIND_PACKAGE(ZLIB REQUIRED)
60FIND_PACKAGE(DirectX REQUIRED)
61
62# Require Lua 5.0 or 5.1
63FIND_PACKAGE(Lua50 QUIET)
64IF(NOT LUA50_FOUND)
65  # Remove variables set by Lua50 and try with Lua51
66  SET(LUA_INCLUDE_DIR)
67  SET(LUA_LIBRARY_lua)
68  SET(LUA_LIBRARY_lualib)
69  SET(LUA_LIBRARIES)
70  FIND_PACKAGE(Lua51 REQUIRED)
71ENDIF(NOT LUA50_FOUND)
72# Determine Lua version (Lua50 may also find Lua51)
73FILE(STRINGS "${LUA_INCLUDE_DIR}/lua.h" LUA_VERSION REGEX "LUA_VERSION")
74STRING(REGEX REPLACE "^.*\"Lua (.*)\".*$" "\\1" LUA_VERSION "${LUA_VERSION}")
75
76# QUIET: Don't require the whole tcl rat tail
77FIND_PACKAGE(TCL QUIET)
78IF(NOT TCL_FOUND)
79  MESSAGE(FATAL_ERROR "Tcl was not found.")
80ENDIF(NOT TCL_FOUND)
81
82# Hide variables created by CMake FindXX scripts
83MARK_AS_ADVANCED(
84  LUA_LIBRARY_lua
85  LUA_LIBRARY_lualib
86  OPENAL_INCLUDE_DIR
87  OPENAL_LIBRARY
88)
89
90############### Orxonox Source ##################
91
92ADD_SUBDIRECTORY(src)
93ADD_SUBDIRECTORY(bin)
Note: See TracBrowser for help on using the repository browser.