Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Feb 14, 2009, 10:53:45 PM (15 years ago)
Author:
rgrieder
Message:

Merged buildsystem2 to buildsystem3.

Note: Bare merge, just resolved conflicts. To testing, no nothing.

Location:
code/branches/buildsystem3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/buildsystem3

  • code/branches/buildsystem3/CMakeLists.txt

    r1889 r2664  
    1 PROJECT(Orxonox)
     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 
     20PROJECT(Orxonox C CXX)
    221
    3 cmake_minimum_required(VERSION 2.4)
     22CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
    423
    5 IF (COMMAND cmake_policy)
    6   cmake_policy(SET CMP0003 NEW)
    7 ENDIF (COMMAND cmake_policy)
     24SET(ORXONOX_VERSION_MAJOR 0)
     25SET(ORXONOX_VERSION_MINOR 0)
     26SET(ORXONOX_VERSION_PATCH 3)
     27SET(ORXONOX_VERSION 0.0.3)
     28SET(ORXONOX_VERSION_NAME "Castor")
    829
    9 # Allow for simple IF constructs (makes code a lot more readable)
    10 #SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
     30# Keep devs from using the root directory as binary directory (messes up the source tree)
     31IF(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
     32  MESSAGE(FATAL_ERROR "Do not use the root directory as CMake output directory! mkdir build; cd build; cmake ..")
     33ENDIF()
    1134
    1235# This sets where to look for modules (e.g. "Find*.cmake" files)
    13 SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
     36SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
    1437
    15 # Check whether we are on a tardis box
    16 INCLUDE(CheckTardis)
     38# Library Config
     39INCLUDE(LibraryConfig)
    1740
     41# Build Config
     42INCLUDE(BuildConfig)
    1843
    19 ############## Testing options ##################
     44# Configure media directory location and installation
     45ADD_SUBDIRECTORY(media)
    2046
    21 OPTION(TESTING_ENABLED "Do you want to enable Testing")
    22 IF (TESTING_ENABLED)
    23   ENABLE_TESTING()
    24 ENDIF(TESTING_ENABLED)
    25 
    26 OPTION (NETWORK_TESTING_ENABLED "Do you want to build network testing tools: i.e. chatclient chatserver and alike")
    27 OPTION (NETWORKTRAFFIC_TESTING_ENABLED "Do you want to build dummyserver4 and dummyclient4")
    28 
    29 
    30 ########## Compiler/Linker options ##############
    31 
    32 # if on tardis change compiler and reset boost include directory
    33 IF(IS_TARDIS)
    34   MESSAGE("System is a TARDIS: Setting Compiler to g++-4.1.1")
    35   # Force-set the compiler on tardis machines, as default points to g++-3.3
    36   SET(CMAKE_CXX_COMPILER "g++-4.1.1")
    37   # Reset Boost serach path
    38   SET(Boost_INCLUDE_DIR "/usr/pack/boost-1.34.1-sd/i686-debian-linux3.1/include")
    39 ELSE (IS_TARDIS)
    40   IF (NOT WIN32)
    41     SET(Boost_INCLUDE_DIR "/usr/include/boost")
    42   ENDIF (NOT WIN32)
    43 ENDIF(IS_TARDIS)
    44 
    45 # Set binary output directories
    46 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
    47 SET(LIBRARY_OUTPUT_PATH    ${PROJECT_SOURCE_DIR}/bin/lib)
    48 
    49 # Global compiler/linker flags. force -O2!
    50 SET(CMAKE_C_FLAGS "$ENV{CFLAGS} -O0 -Wall -g -ggdb")
    51 SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
    52 #SET(CMAKE_C_FLAGS "$ENV{CFLAGS} -O3 -s")
    53 #SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -O3 -s")
    54 
    55 SET(CMAKE_LD_FLAGS "$ENV{LDFLAGS}")
    56 SET(CMAKE_EXE_LINKER_FLAGS " --no-undefined")
    57 SET(CMAKE_SHARED_LINKER_FLAGS " --no-undefined")
    58 SET(CMAKE_MODULE_LINKER_FLAGS " --no-undefined")
    59 
    60 # Use 'cmake -D make_verb:1 path' to get verbose make output when compiling
    61 IF (MAKE_VERB)
    62  SET(CMAKE_VERBOSE_MAKEFILE TRUE)
    63 ENDIF (MAKE_VERB)
    64 
    65 
    66 ############### Library finding #################
    67 
    68 # Uncomment the following line if you want the include and library paths to be shown
    69 # Alternatively use the "-D VERBOSE_FIND:BOOL=true" option when executing cmake
    70 
    71 # SET (VERBOSE_FIND true)
    72 
    73 # Set the library directory when using precompiled tarballs for the dependencies under windows
    74 IF (WIN32)
    75   IF (MSVC)
    76     IF ($ENV{ORXONOX_DEV})
    77       SET (DEPENDENCY_DIR ${CMAKE_SOURCE_DIR}/../lib_dist/dependencies/)
    78     ELSE ($ENV{ORXONOX_DEV})
    79       SET (DEPENDENCY_DIR ${CMAKE_SOURCE_DIR}/dependencies/)
    80     ENDIF ($ENV{ORXONOX_DEV})
    81     SET(Boost_LIB_SUFFIX_DEBUG vc80-mt-gd-1_35)
    82   ENDIF (MSVC)
    83 ENDIF (WIN32)
    84 MESSAGE(STATUS ${DEPENDENCY_DIR})
    85 
    86 # Performs the search and sets the variables
    87 FIND_PACKAGE(OGRE)
    88 FIND_PACKAGE(CEGUI)
    89 # FIND_PACKAGE(CEGUI_OGRE)
    90 FIND_PACKAGE(ENet)
    91 FIND_PACKAGE(Boost REQUIRED thread filesystem)
    92 FIND_PACKAGE(OpenAL)
    93 FIND_PACKAGE(ALUT)
    94 FIND_PACKAGE(OggVorbis)
    95 FIND_PACKAGE(ZLIB)
    96 #FIND_PACKAGE(Lua)
    97 FIND_PACKAGE(TCL)
    98 FIND_PACKAGE(DirectX)
    99 
    100 # Set the search paths for the linking
    101 LINK_DIRECTORIES(
    102   ${OGRE_LIB_DIR}
    103   ${CEGUI_LIB_DIR}
    104 #  ${CEGUI_SCRIPT_LIB_DIR}
    105 #  ${CEGUI_OGRE_LIB_DIR}
    106   ${ENet_LIBRARY}
    107   ${Boost_LIBRARY_DIRS}
    108   ${Zlib_LIBRARY_DIR}
    109   ${TCL_LIBRARY}
    110 )
    111 
    112 # Set the search paths for include files
    113 INCLUDE_DIRECTORIES(
    114   ${OGRE_INCLUDE_DIR}
    115   ${CEGUI_INCLUDE_DIR}
    116 #  ${CEGUI_OGRE_INCLUDE_DIR}
    117   ${ENet_INCLUDE_DIR}
    118   ${Boost_INCLUDE_DIRS}
    119   ${OPENAL_INCLUDE_DIR}
    120   ${ALUT_INCLUDE_DIR}
    121   ${VORBIS_INCLUDE_DIR}
    122   ${OGG_INCLUDE_DIR}
    123 #  ${Lua_INCLUDE_DIR}
    124   ${TCL_INCLUDE_PATH}
    125   ${DirectX_INCLUDE_DIR}
    126   ${ZLIB_INCLUDE_DIR}
    127 )
    128 
    129 # Add main source dir
     47# Creates the actual project
    13048ADD_SUBDIRECTORY(src)
    13149
     50# Configure the binary output directory
     51ADD_SUBDIRECTORY(bin)
     52
     53# Last but not least: Try to make doxygen target
     54ADD_SUBDIRECTORY(doc)
Note: See TracChangeset for help on using the changeset viewer.