Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/mergeFS18/cmake/PackageConfigOSX.cmake

Last change on this file 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.6 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 #    OS X package configuration
24 #
25
26INCLUDE(CheckPackageVersion)
27
28CHECK_PACKAGE_VERSION(2.0)
29
30IF(NOT _INTERNAL_PACKAGE_MESSAGE)
31  MESSAGE(STATUS "Using library package for the dependencies.")
32 
33  # The following shell script sets the appropriate install_names for our libraries
34  # and therefore it must be run before anything else is set, dep-package-wise.
35  IF(NOT EXISTS ${CMAKE_BINARY_DIR}/dep_pack_install_log.keep_me)
36    MESSAGE(STATUS "Installing Mac OS X dependency package to current dir.")
37    EXECUTE_PROCESS(
38      COMMAND ${DEPENDENCY_PACKAGE_DIR}/install_dependencies.sh
39      WORKING_DIRECTORY ${DEPENDENCY_PACKAGE_DIR}
40      OUTPUT_FILE ${CMAKE_BINARY_DIR}/dep_pack_install_log.keep_me 
41    )
42  ENDIF()
43  SET(_INTERNAL_PACKAGE_MESSAGE 1 CACHE INTERNAL "Do not edit!" FORCE)
44ENDIF()
45
46SET(DEP_INCLUDE_DIR   ${DEPENDENCY_PACKAGE_DIR}/include)
47SET(DEP_LIBRARY_DIR   ${DEPENDENCY_PACKAGE_DIR}/lib)
48SET(DEP_BINARY_DIR    ${DEPENDENCY_PACKAGE_DIR}/bin)
49SET(DEP_FRAMEWORK_DIR ${DEPENDENCY_PACKAGE_DIR}/Library/Frameworks)
50
51# Sets the library and framwork paths for the FIND_LIBRARY commands
52SET(CMAKE_LIBRARY_PATH   ${DEP_LIBRARY_DIR})
53SET(CMAKE_FRAMEWORK_PATH ${DEP_FRAMEWORK_DIR})
54
55# Include paths and other special treatments
56SET(ENV{BOOST_ROOT}      ${DEPENDENCY_PACKAGE_DIR})
57SET(ENV{OGGDIR}          ${DEP_INCLUDE_DIR})
58SET(ENV{VORBISDIR}       ${DEP_INCLUDE_DIR})
59SET(ENV{OGRE_PLUGIN_DIR} ${DEP_BINARY_DIR})
60
61# Linking to OGRE requires linking to the boost threading library
62SET(OGRE_NEEDS_BOOST TRUE)
63
64# For OS X 10.5 we have to ship modified headers to make it compile
65# on gcc >= 4.2 (binaries stay the same)
66# Sets the library path for the FIND_LIBRARY
67IF(CMAKE_SYSTEM_VERSION STREQUAL "10.5")
68  SET(ENV{OPENALDIR} ${DEP_INCLUDE_DIR}/openal)
69ENDIF()
70
71### INSTALL ###
72
73# Tcl script library
74# TODO: How does this work on OS X?
75# Concerning all OS X install procedures: use CPACK
76#INSTALL(
77#  DIRECTORY ${DEP_LIBRARY_DIR}/tcl/
78#  DESTINATION lib/tcl
79#)
80
81# TODO: Install on OSX
82IF(FALSE)
83  ## DEBUG
84  # When installing a debug version, we really can't know which libraries
85  # are used in released mode because there might be deps of deps.
86  # --> Copy all of them, except the debug databases
87  INSTALL(
88    DIRECTORY ${DEP_BINARY_DIR}/
89    DESTINATION bin
90    CONFIGURATIONS Debug
91    REGEX "^.*\\.pdb$" EXCLUDE
92  )
93
94  ## RELEASE
95  # Try to filter out all the debug libraries. If the regex doesn't do the
96  # job anymore, simply adjust it.
97  INSTALL(
98    DIRECTORY ${DEP_BINARY_DIR}/
99    DESTINATION bin
100    CONFIGURATIONS RelForDevs Release RelWithDebInfo MinSizeRel
101    REGEX "_[Dd]\\.[a-zA-Z0-9+-]+$|-mt-gd-|^.*\\.pdb$" EXCLUDE
102  )
103ENDIF()
Note: See TracBrowser for help on using the repository browser.