Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

Last change on this file since 2581 was 2579, checked in by rgrieder, 15 years ago
  • Equipped find scripts with debug/optimized functions. If you have different debug prefixes on your platform simply change ${LIBRARY_DEBUG_POSTFIX} ("_d" default).
  • Clean up in ConfigMSVC.cmake and ConfigMinGW.cmake
  • Also had a good look at the MinGW libraries according to the libs_1889_mingw.zip (no warranty at all, hope I got them all)
  • INSTALL commands are currently limited to non Windows platforms (don't yet know why it doesn't work)
  • Property svn:eol-style set to native
File size: 3.4 KB
RevLine 
[1505]1PROJECT(Orxonox)
2
[2509]3CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
[1505]4
[2574]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
[1776]10# This sets where to look for modules (e.g. "Find*.cmake" files)
[1505]11SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
12
[2579]13# Configre special platforms if required
14INCLUDE(ConfigPlatforms)
[1505]15
[2509]16################ Test options ###################
[1505]17
[2509]18OPTION(ENABLE_TESTS "Enable build tests.")
19IF(ENABLE_TESTS)
[1505]20  ENABLE_TESTING()
[2509]21ENDIF(ENABLE_TESTS)
[1505]22
[2509]23OPTION(NETWORK_TESTING_ENABLED "Build network testing tools: i.e. chatclient chatserver and alike.")
24OPTION(NETWORKTRAFFIC_TESTING_ENABLED "Build dummyserver4 and dummyclient4.")
[1505]25
26########## Compiler/Linker options ##############
27
[1776]28# Set binary output directories
[2509]29SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
30SET(LIBRARY_OUTPUT_PATH    ${PROJECT_BINARY_DIR}/bin)
31MARK_AS_ADVANCED(EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH)
[1505]32
[2509]33# Compiler/Linker flags.
34IF(NOT CMAKE_BUILD_TYPE)
35  SET(CMAKE_BUILD_TYPE "Debug")
36ENDIF(NOT CMAKE_BUILD_TYPE)
[2517]37#SET(CMAKE_C_FLAGS   "$ENV{CFLAGS}   -Wall -Wextra -Wno-unused-parameter")
[2526]38SET(CMAKE_C_FLAGS   "$ENV{CFLAGS}   -Wall ${ORXONOX_FPIC_FLAG}")
[2517]39#SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -Wall -Wextra -Wno-unused-parameter")
[2526]40SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -Wall ${ORXONOX_FPIC_FLAG}")
[2521]41SET(CMAKE_C_FLAGS_DEBUG            "-g -ggdb")
42SET(CMAKE_CXX_FLAGS_DEBUG          "-g -ggdb")
43SET(CMAKE_C_FLAGS_RELEASE          "-O3 -DNDEBUG")
44SET(CMAKE_CXX_FLAGS_RELEASE        "-O3 -DNDEBUG")
45SET(CMAKE_C_FLAGS_RELWITHDEBINFO   "-O2 -DNDEBUG -g -ggdb")
46SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -g -ggdb")
47SET(CMAKE_C_FLAGS_MINSIZEREL       "-Os -DNDEBUG")
48SET(CMAKE_CXX_FLAGS_MINSIZEREL     "-Os -DNDEBUG")
[1505]49
50SET(CMAKE_LD_FLAGS "$ENV{LDFLAGS}")
51SET(CMAKE_EXE_LINKER_FLAGS " --no-undefined")
52SET(CMAKE_SHARED_LINKER_FLAGS " --no-undefined")
53SET(CMAKE_MODULE_LINKER_FLAGS " --no-undefined")
54
55############### Library finding #################
56
[2579]57INCLUDE(FindPackageHandleStandardArgs)
58INCLUDE(HandleLibraryTypes)
59
[1776]60# Performs the search and sets the variables
[2509]61FIND_PACKAGE(OGRE REQUIRED)
62FIND_PACKAGE(CEGUI REQUIRED)
63FIND_PACKAGE(ENet REQUIRED)
64FIND_PACKAGE(Boost 1.34 REQUIRED thread filesystem)
65FIND_PACKAGE(OpenAL REQUIRED)
66FIND_PACKAGE(ALUT REQUIRED)
67FIND_PACKAGE(OggVorbis REQUIRED)
68FIND_PACKAGE(ZLIB REQUIRED)
69FIND_PACKAGE(DirectX REQUIRED)
[1505]70
[2510]71# Require Lua 5.0 or 5.1
72FIND_PACKAGE(Lua50 QUIET)
73IF(NOT LUA50_FOUND)
74    # Remove variables set by Lua50 and try with Lua51
75    SET(LUA_INCLUDE_DIR)
76    SET(LUA_LIBRARY_lua)
77    SET(LUA_LIBRARY_lualib)
78    SET(LUA_LIBRARIES)
79    FIND_PACKAGE(Lua51 REQUIRED)
80ENDIF(NOT LUA50_FOUND)
81# Determine Lua version (Lua50 may also find Lua51)
82FILE(STRINGS "${LUA_INCLUDE_DIR}/lua.h" LUA_VERSION REGEX "LUA_VERSION")
83STRING(REGEX REPLACE "^.*\"Lua (.*)\".*$" "\\1" LUA_VERSION "${LUA_VERSION}")
84
[2579]85# QUIET: Don't require the whole tcl rat tail
[2509]86FIND_PACKAGE(TCL QUIET)
87IF(NOT TCL_FOUND)
[2579]88    MESSAGE(FATAL_ERROR "Tcl was not found.")
[2509]89ENDIF(NOT TCL_FOUND)
[1505]90
[2579]91# Hide variables created by CMake FindXX scripts
92MARK_AS_ADVANCED(
93    LUA_LIBRARY_lua
94    LUA_LIBRARY_lualib
95    OPENAL_INCLUDE_DIR
96    OPENAL_LIBRARY
97)
98
[1776]99# Add main source dir
[1505]100ADD_SUBDIRECTORY(src)
[2509]101ADD_SUBDIRECTORY(bin)
Note: See TracBrowser for help on using the repository browser.