Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 3167 for code/branches/pch/src


Ignore:
Timestamp:
Jun 14, 2009, 6:11:32 PM (16 years ago)
Author:
rgrieder
Message:

Merged the build system changes from the Gruppenarbeit:

  • More Comments (including Doxygen stuff for the config files)
  • Removed redundancy between PackageConfigMSVC.cmake and PackageConfigMinGW.cmake
  • Option ORXONOX_RELEASE which activates some expensive (build time) optimisations
  • Native Visual Leak Detector support (doesn't work for MSVC9 though)
  • Added CMake option to disable the console on Windows
Location:
code/branches/pch/src
Files:
7 edited
1 moved

Legend:

Unmodified
Added
Removed
  • code/branches/pch/src/CMakeLists.txt

    r3116 r3167  
    2929ADD_COMPILER_FLAGS("-DOIS_DYNAMIC_LIB")
    3030# Tolua binding speedup if required
    31 ADD_COMPILER_FLAGS("-DTOLUA_RELEASE" Release MinSizeRel TOLUA_PARSER_RELEASE)
     31ADD_COMPILER_FLAGS("-DTOLUA_RELEASE" ORXONOX_RELEASE)
    3232
    3333# Default linking is SHARED
     
    7777
    7878SET(GENERATED_FILE_COMMENT
    79    "DO NOT EDIT THIS FILE!
     79   "DO NOT EDIT THIS FILE! <br>
    8080    It has been automatically generated by CMake from OrxonoxConfig.h.in")
    8181# Copy and configure OrxonoxConfig which gets included in every file
     
    108108  ${DIRECTX_INCLUDE_DIR}
    109109  ${ZLIB_INCLUDE_DIR}
     110  ${VLD_INCLUDE_DIR}
    110111
    111112  # All library includes are prefixed with the path to avoid conflicts
     
    152153ADD_SUBDIRECTORY(network)
    153154ADD_SUBDIRECTORY(orxonox)
    154 
    155 # Apply version info
    156 SET_TARGET_PROPERTIES(util core network orxonox
    157   PROPERTIES VERSION ${ORXONOX_VERSION})
  • code/branches/pch/src/OrxonoxConfig.h.in

    r3153 r3167  
    3434
    3535/**
    36  @file
    37  @brief
     36@file
     37@brief
    3838    Various constants for compiler, architecture and platform.
    39 
     39@remarks
    4040    @GENERATED_FILE_COMMENT@
    41  */
     41*/
    4242
    4343#ifndef _OrxonoxConfig_H__
     
    5252#cmakedefine ORXONOX_PLATFORM_UNIX /* Apple and Linux */
    5353
    54 /* Determine compiler and set ORXONOX_COMP_VER */
     54// Determine compiler and set ORXONOX_COMP_VER
    5555#if defined( _MSC_VER )
    5656#  define ORXONOX_COMPILER_MSVC
     
    7575#endif
    7676
    77 /* Endianness */
     77// Endianness
    7878#cmakedefine ORXONOX_BIG_ENDIAN
    7979#cmakedefine ORXONOX_LITTLE_ENDIAN
    8080
    81 /* Architecture */
     81// Architecture
    8282#cmakedefine ORXONOX_ARCH_32
    8383#cmakedefine ORXONOX_ARCH_64
    8484
    85 /* See if we can use __forceinline or if we need to use __inline instead */
     85// See if we can use __forceinline or if we need to use __inline instead
    8686#cmakedefine HAVE_FORCEINLINE
    8787#ifndef FORCEINLINE
     
    9393#endif
    9494
    95 /* Try to define function information */
     95// Try to define function information
    9696#ifndef __FUNCTIONNAME__
    9797#  ifdef ORXONOX_COMPILER_BORLAND
     
    115115#define ORXONOX_VERSION_NAME "@ORXONOX_VERSION_NAME@"
    116116
    117 #define ORXONOX_VERSION ((ORXONOX_VERSION_MAJOR << 16) | (ORXONOX_VERSION_MINOR << 8) | ORXONOX_VERSION_PATCH)
     117//! Defines version info encoded as 0xMMIIPP (M: Major version, I: Minor version, P: Patch version, all as hex)
     118#define ORXONOX_VERSION \
     119    ((ORXONOX_VERSION_MAJOR << 16) | (ORXONOX_VERSION_MINOR << 8) | ORXONOX_VERSION_PATCH)
    118120
    119121
     
    123125#ifdef ORXONOX_PLATFORM_UNIX
    124126
    125 /* TODO: Check what this actually is and whether we need it or not */
     127// TODO: Check what this actually is and whether we need it or not
    126128#if 0
    127129#  ifdef ORXONOX_PLATFORM_APPLE
    128130#    define ORXONOX_PLATFORM_LIB "OrxonoxPlatform.bundle"
    129 #  else
    130 /* ORXONOX_PLATFORM_LINUX */
     131#  else // ORXONOX_PLATFORM_LINUX
    131132#    define ORXONOX_PLATFORM_LIB "libOrxonoxPlatform.so"
    132133#  endif
     
    151152
    152153/*---------------------------------
    153  * Includes
    154  *-------------------------------*/
    155 /* Define the english written operators like and, or, xor
    156  * This is C++ standard, but the Microsoft compiler doesn't define them. */
     154 * Options
     155 *-------------------------------*/
     156/**
     157@def ORXONOX_RELEASE
     158    Enables expensive (build time) optimisations and disables certain features
     159*/
     160#cmakedefine ORXONOX_RELEASE
     161
     162
     163/*---------------------------------
     164 * Includes and Declarations
     165 *-------------------------------*/
     166// Define the english written operators like and, or, xor
     167// This is C++ standard, but the Microsoft compiler doesn't define them.
    157168#cmakedefine HAVE_ISO646_H
    158169#ifdef HAVE_ISO646_H
     
    181192*/
    182193
    183 /* Forward declare the everywhere used std::string */
     194// Always include the memory leak detector for MSVC except for actual releases
     195// Note: Although officially supported, VLD does not work with MSVC 9
     196#if defined(ORXONOX_COMPILER_MSVC) && _MSC_VER < 1500 && !defined(ORXONOX_RELEASE)
     197#  include <vld.h>
     198#endif
     199
     200// Forward declare the everywhere used std::string
    184201namespace std
    185202{
     
    190207}
    191208
    192 /* Just in case you don't include a standard header */
    193 #ifndef NULL
    194   #define NULL 0
    195 #endif
    196 
    197 /* Visual Leak Detector looks for memory leaks */
    198 #cmakedefine VISUAL_LEAK_DETECTOR_ENABLE
    199 #ifdef VISUAL_LEAK_DETECTOR_ENABLE
    200 #  include <vld.h>
    201 #endif
    202 
    203209#endif /* _OrxonoxConfig_H__ */
  • code/branches/pch/src/SpecialConfig.h.in

    r2946 r3167  
    2828
    2929/**
    30  @file
    31  @brief
     30@file
     31@brief
    3232    Various constants and options that only affect very little code.
    33  @note
     33@note
    3434    This is merely to avoid recompiling everything when only a path changes.
    35 
     35@remarks
    3636    @GENERATED_FILE_COMMENT@
    37  */
     37*/
    3838
    3939#ifndef _SpecialConfig_H__
     
    4242#include "OrxonoxConfig.h"
    4343
    44 /* Set whether we must suffix "ceguilua/" for the CEGUILua.h include */
     44/**
     45@def CEGUILUA_USE_INTERNAL_LIBRARY
     46    Set whether we must suffix "ceguilua/" for the CEGUILua.h include
     47*/
    4548#cmakedefine CEGUILUA_USE_INTERNAL_LIBRARY
    4649
    47 /* Defined if a precompiled depdency package was used. We then copy all libraries
    48    too when installing. */
     50/**
     51@def DEPENDENCY_PACKAGE_ENABLE
     52    Defined if a precompiled depdency package was used. We then copy all libraries
     53    too when installing.
     54*/
    4955#cmakedefine DEPENDENCY_PACKAGE_ENABLE
    5056
    51 /* Orxonox either gets installed to the system or just into a folder.
    52    The latter uses relative paths. */
     57/**
     58@def INSTALL_COPYABLE
     59    Orxonox either gets installed to the system or just into a folder.
     60    The latter uses relative paths.
     61*/
    5362#cmakedefine INSTALL_COPYABLE
    5463
    55 /* Using MSVC or XCode IDE */
     64/**
     65@def CMAKE_CONFIGURATION_TYPES
     66    Using MSVC or XCode IDE
     67*/
    5668#cmakedefine CMAKE_CONFIGURATION_TYPES
    5769
    58 /* Handle default ConfigValues */
     70// Handle default ConfigValues
    5971namespace orxonox
    6072{
    61     const char* const ORXONOX_RUNTIME_INSTALL_PATH("@ORXONOX_RUNTIME_INSTALL_PATH@");
    62     const char* const ORXONOX_MEDIA_INSTALL_PATH  ("@ORXONOX_MEDIA_INSTALL_PATH@");
     73    // INSTALLATION PATHS
     74    const char ORXONOX_RUNTIME_INSTALL_PATH[] = "@ORXONOX_RUNTIME_INSTALL_PATH@";
     75    const char ORXONOX_MEDIA_INSTALL_PATH[]   = "@ORXONOX_MEDIA_INSTALL_PATH@";
    6376    /* Config and Log path might be relative because they could be user and therefore runtime dependent */
    64     const char* const ORXONOX_CONFIG_INSTALL_PATH ("@ORXONOX_CONFIG_INSTALL_PATH@");
    65     const char* const ORXONOX_LOG_INSTALL_PATH    ("@ORXONOX_LOG_INSTALL_PATH@");
     77    const char ORXONOX_CONFIG_INSTALL_PATH[]  = "@ORXONOX_CONFIG_INSTALL_PATH@";
     78    const char ORXONOX_LOG_INSTALL_PATH[]     = "@ORXONOX_LOG_INSTALL_PATH@";
    6679
    67     const char* const ORXONOX_MEDIA_DEV_PATH      ("@CMAKE_MEDIA_OUTPUT_DIRECTORY@");
     80    // DEVELOPMENT RUN PATHS
     81    const char ORXONOX_MEDIA_DEV_PATH[]       = "@CMAKE_MEDIA_OUTPUT_DIRECTORY@";
    6882#ifdef CMAKE_CONFIGURATION_TYPES
    69     const char* const ORXONOX_CONFIG_DEV_PATH     ("@CMAKE_CONFIG_OUTPUT_DIRECTORY@/" MACRO_QUOTEME(CMAKE_BUILD_TYPE));
    70     const char* const ORXONOX_LOG_DEV_PATH        ("@CMAKE_LOG_OUTPUT_DIRECTORY@/"    MACRO_QUOTEME(CMAKE_BUILD_TYPE));
     83    const char ORXONOX_CONFIG_DEV_PATH[]      = "@CMAKE_CONFIG_OUTPUT_DIRECTORY@/" MACRO_QUOTEME(CMAKE_BUILD_TYPE);
     84    const char ORXONOX_LOG_DEV_PATH[]         = "@CMAKE_LOG_OUTPUT_DIRECTORY@/"    MACRO_QUOTEME(CMAKE_BUILD_TYPE);
    7185#else
    72     const char* const ORXONOX_CONFIG_DEV_PATH     ("@CMAKE_CONFIG_OUTPUT_DIRECTORY@");
    73     const char* const ORXONOX_LOG_DEV_PATH        ("@CMAKE_LOG_OUTPUT_DIRECTORY@");
     86    const char ORXONOX_CONFIG_DEV_PATH[]      = "@CMAKE_CONFIG_OUTPUT_DIRECTORY@";
     87    const char ORXONOX_LOG_DEV_PATH[]         = "@CMAKE_LOG_OUTPUT_DIRECTORY@";
    7488#endif
    7589   
    7690    /* OGRE Plugins */
    7791#ifdef NDEBUG
    78     const char* const ORXONOX_OGRE_PLUGINS("@OGRE_PLUGINS_RELEASE@");
     92    const char ORXONOX_OGRE_PLUGINS[] = "@OGRE_PLUGINS_RELEASE@";
    7993#  ifdef DEPENDENCY_PACKAGE_ENABLE
    80     const char* const ORXONOX_OGRE_PLUGINS_FOLDER(".");
     94    const char ORXONOX_OGRE_PLUGINS_FOLDER[] = ".";
    8195#  else
    82     const char* const ORXONOX_OGRE_PLUGINS_FOLDER("@OGRE_PLUGINS_FOLDER_RELEASE@");
     96    const char ORXONOX_OGRE_PLUGINS_FOLDER[] = "@OGRE_PLUGINS_FOLDER_RELEASE@";
    8397#  endif
    8498#else
    85     const char* const ORXONOX_OGRE_PLUGINS("@OGRE_PLUGINS_DEBUG@");
     99    const char ORXONOX_OGRE_PLUGINS[] = "@OGRE_PLUGINS_DEBUG@";
    86100#  ifdef DEPENDENCY_PACKAGE_ENABLE
    87     const char* const ORXONOX_OGRE_PLUGINS_FOLDER(".");
     101    const char ORXONOX_OGRE_PLUGINS_FOLDER[] = ".";
    88102#  else
    89     const char* const ORXONOX_OGRE_PLUGINS_FOLDER("@OGRE_PLUGINS_FOLDER_DEBUG@");
     103    const char ORXONOX_OGRE_PLUGINS_FOLDER[] = "@OGRE_PLUGINS_FOLDER_DEBUG@";
    90104#  endif
    91105#endif
    92106}
    93107
     108/**
     109@def ORXONOX_USE_WINMAIN
     110    Use main() or WinMain()?
     111*/
     112#cmakedefine ORXONOX_USE_WINMAIN
     113
    94114#endif /* _SpecialConfig_H__ */
  • code/branches/pch/src/orxonox/CMakeLists.txt

    r3117 r3167  
    3333ADD_SUBDIRECTORY(tools)
    3434
     35# Translate argument
     36IF(ORXONOX_USE_WINMAIN)
     37  SET(ORXONOX_WIN32 WIN32)
     38ENDIF()
     39
    3540ORXONOX_ADD_EXECUTABLE(orxonox
    3641  FIND_HEADER_FILES
     
    4449    OrxonoxPrecompiledHeaders.h
    4550  PCH_NO_DEFAULT
     51  # When defined as WIN32 this removes the console window on Windows
     52  ${ORXONOX_WIN32}
    4653  LINK_LIBRARIES
    4754    ${OGRE_LIBRARY}
     
    8592  STRING(REGEX REPLACE "^Visual Studio ([0-9][0-9]?) .*$" "\\1"
    8693         VISUAL_STUDIO_VERSION_SIMPLE "${CMAKE_GENERATOR}")
    87   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/orxonox.vcproj.user" "${CMAKE_CURRENT_BINARY_DIR}/orxonox.vcproj.user")
     94  CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/orxonox.vcproj.user.in" "${CMAKE_CURRENT_BINARY_DIR}/orxonox.vcproj.user")
    8895ENDIF(MSVC)
  • code/branches/pch/src/orxonox/Main.cc

    r3110 r3167  
    2828 */
    2929 
    30  /**
    31  @mainpage Orxonox Documentation
    32  */
    33 
    34  /**
    35  @file
    36  @brief Entry point of the program.
    37   */
     30/**
     31@file
     32@brief
     33    Entry point of the program.
     34*/
    3835
    3936#include "OrxonoxConfig.h"
     
    4744    Main method. Game starts here (except for static initialisations).
    4845*/
     46#ifdef ORXONOX_USE_WINMAIN
     47INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
     48#else
    4949int main(int argc, char** argv)
     50#endif
    5051{
    5152    {
  • code/branches/pch/src/orxonox/sound/SoundBase.h

    r3157 r3167  
    3030
    3131#include "OrxonoxPrereqs.h"
     32#include <cstring> // define NULL
    3233
    3334namespace orxonox
  • code/branches/pch/src/tolua/CMakeLists.txt

    r3138 r3167  
    6161)
    6262
    63 OPTION(TOLUA_PARSER_RELEASE "Disable all debug messages from tolua bind files for Release and MinSizeRel build types." FALSE)
    64 
    6563# Set some variables to the cache in order to use them in the TOLUA macro
    6664SET(TOLUA_PARSER_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/all-${LUA_VERSION}.lua" CACHE INTERNAL "")
Note: See TracChangeset for help on using the changeset viewer.