Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/tutoriallevel2/cmake/PackageConfig.cmake @ 8474

Last change on this file since 8474 was 8368, checked in by rgrieder, 14 years ago

Added CMake configuration type "RelForDevs", which replaces "RelWithDebInfo". That latter is now equivalent to "Release", but with symbols.
Also, I removed debug symbol generation for Release and MinSizeRel when compiling with MSVC.

The new configuration should be used as standard Release mode when developing. The other three release configurations are for actual installed binaries (and behave again as the name suggests).

  • Property svn:eol-style set to native
File size: 3.5 KB
Line 
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 #
20 #  Author:
21 #    Reto Grieder
22 #  Description:
23 #    General package configuration. Merely sets the include paths.
24 #    Library files are treated separately.
25 #
26
27IF(NOT _INTERNAL_PACKAGE_MESSAGE)
28  MESSAGE(STATUS "Using library package for the dependencies.")
29  SET(_INTERNAL_PACKAGE_MESSAGE 1 CACHE INTERNAL "Do not edit!" FORCE)
30ENDIF()
31
32# Ogre versions >= 1.7 require the POCO library on Windows with MSVC for threading
33COMPARE_VERSION_STRINGS(${DEPENDENCY_VERSION} 5 _result TRUE)
34IF(NOT _result EQUAL -1 AND NOT APPLE)
35  SET(OGRE_NEEDS_POCO TRUE)
36ENDIF()
37
38# Include paths and other special treatments
39SET(ENV{ALUTDIR}               ${DEP_INCLUDE_DIR}/freealut)
40SET(ENV{BOOST_ROOT}            ${DEP_INCLUDE_DIR}/boost)
41SET(ENV{CEGUIDIR}              ${DEP_INCLUDE_DIR}/cegui)
42SET(ENV{DBGHELP_DIR}           ${DEP_INCLUDE_DIR}/dbghelp)
43SET(ENV{DXSDK_DIR}             ${DEP_INCLUDE_DIR}/directx)
44#SET(ENV{ENETDIR}               ${DEP_INCLUDE_DIR}/enet)
45SET(ENV{LUA5.1_DIR}            ${DEP_INCLUDE_DIR}/lua)
46SET(ENV{OGGDIR}                ${DEP_INCLUDE_DIR}/libogg)
47SET(ENV{VORBISDIR}             ${DEP_INCLUDE_DIR}/libvorbis)
48SET(ENV{OGRE_HOME}             ${DEP_INCLUDE_DIR}/ogre)
49SET(ENV{OGRE_PLUGIN_DIR}       ${DEP_BINARY_DIR})
50SET(ENV{OPENALDIR}             ${DEP_INCLUDE_DIR}/openal)
51SET(ENV{POCODIR}               ${DEP_INCLUDE_DIR}/poco)
52LIST(APPEND CMAKE_INCLUDE_PATH ${DEP_INCLUDE_DIR}/tcl/include)
53LIST(APPEND CMAKE_INCLUDE_PATH ${DEP_INCLUDE_DIR}/zlib/include)
54
55### INSTALL ###
56
57# Tcl script library
58INSTALL(
59  DIRECTORY ${DEP_LIBRARY_DIR}/tcl/
60  DESTINATION lib/tcl
61)
62
63# On Windows, DLLs have to be in the executable folder, install them
64IF(WIN32 AND DEP_BINARY_DIR)
65  ## DEBUG
66  # When installing a debug version, we really can't know which libraries
67  # are used in released mode because there might be deps of deps.
68  # --> Copy all of them, except the debug databases
69  INSTALL(
70    DIRECTORY ${DEP_BINARY_DIR}/
71    DESTINATION bin
72    CONFIGURATIONS Debug
73    REGEX "^.*\\.pdb$" EXCLUDE
74  )
75
76  ## RELEASE
77  IF(EXISTS ${DEP_BINARY_DIR}/install_manifest.txt)
78    FILE(STRINGS ${DEP_BINARY_DIR}/install_manifest.txt _files)
79    FOREACH(_file ${_files})
80      INSTALL(
81        FILES ${DEP_BINARY_DIR}/${_file}
82        DESTINATION bin
83        CONFIGURATIONS RelForDevs Release RelWithDebInfo MinSizeRel
84      )
85    ENDFOREACH(_file)
86  ELSE()
87    # Try to filter out all the debug libraries. If the regex doesn't do the
88    # job anymore, simply adjust it.
89    INSTALL(
90      DIRECTORY ${DEP_BINARY_DIR}/
91      DESTINATION bin
92      CONFIGURATIONS RelForDevs Release RelWithDebInfo MinSizeRel
93      REGEX "_[Dd]\\.[a-zA-Z0-9+-]+$|-mt-gd-|^.*\\.pdb$" EXCLUDE
94    )
95  ENDIF()
96ENDIF()
Note: See TracBrowser for help on using the repository browser.