Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/ois_update/src/OrxonoxConfig.cmake @ 7562

Last change on this file since 7562 was 7525, checked in by rgrieder, 14 years ago

Architecture (32/64 bit) should be determined at compile time because the CMake variable is not reliable (nor is it well possible to do for CMake).
We should still treat this carefully: You can build universal binaries on OS X with both 32 and 64 bit support (sounds like a nightmare for hardware-near development…).

  • Property svn:eol-style set to native
File size: 3.2 KB
RevLine 
[2710]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 #
[5664]19 #
20 #  Author:
21 #    Reto Grieder
22 #  Description:
23 #    Configures the header files OrxonoxConfig.h and SpecialConfig.h
24 #    and sets some other options. All the build related options should be
25 #    found and set here if possible.
26 #
[1505]27
[5664]28#################### Options ####################
[2710]29
[5664]30# Use, i.e. don't skip the full RPATH for the build tree
31SET(CMAKE_SKIP_BUILD_RPATH  FALSE)
[2710]32
[5664]33# Global switch to disable Precompiled Header Files
34IF(PCH_COMPILER_SUPPORT)
35  OPTION(PCH_ENABLE "Global PCH switch" TRUE)
36ENDIF()
[2710]37
[5929]38# Global switch to disable multiple file compilations
39OPTION(DISABLE_COMPILATIONS "Global multi-file compilation switch" FALSE)
40
[5664]41# Use WinMain() or main()?
42IF(WIN32)
43  OPTION(ORXONOX_USE_WINMAIN "Use WinMain (doesn't show console) or main" FALSE)
44ENDIF()
45
46################ Platform Config ################
47
[2710]48# Check endianness
49INCLUDE(TestBigEndian)
50TEST_BIG_ENDIAN(ORXONOX_BIG_ENDIAN)
51IF(NOT ORXONOX_BIG_ENDIAN)
52  SET(ORXONOX_LITTLE_ENDIAN TRUE)
53ENDIF()
54
55# Platforms
56SET(ORXONOX_PLATFORM_WINDOWS ${WIN32})
57SET(ORXONOX_PLATFORM_APPLE ${APPLE})
58SET(ORXONOX_PLATFORM_UNIX ${UNIX})
59IF(UNIX AND NOT APPLE)
60  SET(ORXONOX_PLATFORM_LINUX TRUE)
61ENDIF()
62
63# Check __forceinline
[2724]64IF(MSVC)
65  INCLUDE(CheckCXXSourceCompiles)
66  SET(_source "int main() { return 0; } __forceinline void test() { return; }")
67  CHECK_CXX_SOURCE_COMPILES("${_source}" HAVE_FORCEINLINE)
68ENDIF(MSVC)
[2710]69
[7514]70# Part of a woraround for OS X warnings. See OrxonoxConfig.h.in
71IF(HAVE_STDINT_H)
72  SET(HAVE_STDINT_H 1)
73ELSE()
74  SET(HAVE_STDINT_H 0)
75ENDIF()
76
[5664]77# Check iso646.h include (literal operators)
[2710]78INCLUDE(CheckIncludeFileCXX)
79CHECK_INCLUDE_FILE_CXX(iso646.h HAVE_ISO646_H)
80
[5664]81############## Configured Headers ###############
82
[2710]83SET(GENERATED_FILE_COMMENT
[3196]84   "DO NOT EDIT THIS FILE! <br>
[2710]85    It has been automatically generated by CMake from OrxonoxConfig.h.in")
86# Copy and configure OrxonoxConfig which gets included in every file
87CONFIGURE_FILE(OrxonoxConfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/OrxonoxConfig.h)
88# This file only gets included by very few classes to avoid a large recompilation
89CONFIGURE_FILE(SpecialConfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/SpecialConfig.h)
90
[3196]91SET(ORXONOX_CONFIG_FILES
92  ${CMAKE_CURRENT_BINARY_DIR}/OrxonoxConfig.h
93  ${CMAKE_CURRENT_SOURCE_DIR}/OrxonoxConfig.h.in
94  ${CMAKE_CURRENT_BINARY_DIR}/SpecialConfig.h
95  ${CMAKE_CURRENT_SOURCE_DIR}/SpecialConfig.h.in
96)
Note: See TracBrowser for help on using the repository browser.