Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

Changed CEGUILua directory choosing and restricted root directory builds.

  • Property svn:eol-style set to native
File size: 3.2 KB
Line 
1PROJECT(Orxonox)
2
3CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
4
5# Also forbid to use the root directory as binary directory
6IF(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
7  MESSAGE(FATAL_ERROR "Do not use the root directory as CMake output directory! Mkdir a new subdir and invoke cmake ..")
8ENDIF(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
9
10# This sets where to look for modules (e.g. "Find*.cmake" files)
11SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
12
13# Check for special include paths
14INCLUDE(ConfigTardis)
15INCLUDE(ConfigMinGW)
16
17################ Test options ###################
18
19OPTION(ENABLE_TESTS "Enable build tests.")
20IF(ENABLE_TESTS)
21  ENABLE_TESTING()
22ENDIF(ENABLE_TESTS)
23
24OPTION(NETWORK_TESTING_ENABLED "Build network testing tools: i.e. chatclient chatserver and alike.")
25OPTION(NETWORKTRAFFIC_TESTING_ENABLED "Build dummyserver4 and dummyclient4.")
26
27########## Compiler/Linker options ##############
28
29# Set binary output directories
30SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
31SET(LIBRARY_OUTPUT_PATH    ${PROJECT_BINARY_DIR}/bin)
32MARK_AS_ADVANCED(EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH)
33
34# Compiler/Linker flags.
35IF(NOT CMAKE_BUILD_TYPE)
36  SET(CMAKE_BUILD_TYPE "Debug")
37ENDIF(NOT CMAKE_BUILD_TYPE)
38#SET(CMAKE_C_FLAGS   "$ENV{CFLAGS}   -Wall -Wextra -Wno-unused-parameter")
39SET(CMAKE_C_FLAGS   "$ENV{CFLAGS}   -Wall ${ORXONOX_FPIC_FLAG}")
40#SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -Wall -Wextra -Wno-unused-parameter")
41SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -Wall ${ORXONOX_FPIC_FLAG}")
42SET(CMAKE_C_FLAGS_DEBUG            "-g -ggdb")
43SET(CMAKE_CXX_FLAGS_DEBUG          "-g -ggdb")
44SET(CMAKE_C_FLAGS_RELEASE          "-O3 -DNDEBUG")
45SET(CMAKE_CXX_FLAGS_RELEASE        "-O3 -DNDEBUG")
46SET(CMAKE_C_FLAGS_RELWITHDEBINFO   "-O2 -DNDEBUG -g -ggdb")
47SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -g -ggdb")
48SET(CMAKE_C_FLAGS_MINSIZEREL       "-Os -DNDEBUG")
49SET(CMAKE_CXX_FLAGS_MINSIZEREL     "-Os -DNDEBUG")
50
51SET(CMAKE_LD_FLAGS "$ENV{LDFLAGS}")
52SET(CMAKE_EXE_LINKER_FLAGS " --no-undefined")
53SET(CMAKE_SHARED_LINKER_FLAGS " --no-undefined")
54SET(CMAKE_MODULE_LINKER_FLAGS " --no-undefined")
55
56############### Library finding #################
57
58# Performs the search and sets the variables
59FIND_PACKAGE(OGRE REQUIRED)
60FIND_PACKAGE(CEGUI REQUIRED)
61FIND_PACKAGE(ENet REQUIRED)
62FIND_PACKAGE(Boost 1.34 REQUIRED thread filesystem)
63FIND_PACKAGE(OpenAL REQUIRED)
64FIND_PACKAGE(ALUT REQUIRED)
65FIND_PACKAGE(OggVorbis REQUIRED)
66FIND_PACKAGE(ZLIB REQUIRED)
67FIND_PACKAGE(DirectX REQUIRED)
68
69# Require Lua 5.0 or 5.1
70FIND_PACKAGE(Lua50 QUIET)
71IF(NOT LUA50_FOUND)
72    # Remove variables set by Lua50 and try with Lua51
73    SET(LUA_INCLUDE_DIR)
74    SET(LUA_LIBRARY_lua)
75    SET(LUA_LIBRARY_lualib)
76    SET(LUA_LIBRARIES)
77    FIND_PACKAGE(Lua51 REQUIRED)
78ENDIF(NOT LUA50_FOUND)
79# Determine Lua version (Lua50 may also find Lua51)
80FILE(STRINGS "${LUA_INCLUDE_DIR}/lua.h" LUA_VERSION REGEX "LUA_VERSION")
81STRING(REGEX REPLACE "^.*\"Lua (.*)\".*$" "\\1" LUA_VERSION "${LUA_VERSION}")
82
83# Don't require the whole tcl rat tail
84FIND_PACKAGE(TCL QUIET)
85IF(NOT TCL_FOUND)
86    MESSAGE(FATAL_ERROR "Tcl not found.")
87ENDIF(NOT TCL_FOUND)
88
89# Add main source dir
90ADD_SUBDIRECTORY(src)
91ADD_SUBDIRECTORY(bin)
Note: See TracBrowser for help on using the repository browser.