Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/kicklib/cmake/tools/FindCEGUI.cmake @ 8076

Last change on this file since 8076 was 8061, checked in by rgrieder, 14 years ago

Sorted out tolua++ inclusion for newer CEGUI versions.

  • Property svn:eol-style set to native
File size: 4.1 KB
RevLine 
[1505]1# Find CEGUI includes and library
2#
3# This module defines
4#  CEGUI_INCLUDE_DIR
[2710]5#  CEGUI_LIBRARY, the library to link against to use CEGUI.
[7941]6#  CEGUILUA_LIBRARY, the library to link against to use the CEGUI script module.
7#  CEGUI_TOLUA_LIBRARY, the library to link against to use Tolua++.
[1505]8#  CEGUI_FOUND, If false, do not try to use CEGUI
[2710]9#  CEGUI_VERSION, the version as string "x.y.z"
[1505]10#
[2710]11# Input:
12#  ENV{CEGUIDIR}, CEGUI path, optional
13#
[1505]14# Created by Matt Williams to find OGRE libraries
15# Copyright © 2007, Matt Williams
16#
17# Modified by Nicolas Schlumberger to find CEGUI libraries
18# and make it run on the Tardis-Infrastucture of the ETH Zurich
19# Copyright 2007, Nicolas Schlumberger
20#
21# Redistribution and use is allowed according to the terms of the BSD license.
[1776]22#
23# Several changes and additions by Fabian 'x3n' Landau
[2710]24# Lots of simplifications by Adrian Friedli and Reto Grieder
25# Version checking and CEGUILua finding by Reto Grieder
[1776]26#                 > www.orxonox.net <
[1505]27
[7960]28INCLUDE(CompareVersionStrings)
[2710]29INCLUDE(DetermineVersion)
30INCLUDE(FindPackageHandleAdvancedArgs)
31INCLUDE(HandleLibraryTypes)
[1505]32
[7960]33# Find headers
[2710]34FIND_PATH(CEGUI_INCLUDE_DIR CEGUI.h
35  PATHS $ENV{CEGUIDIR}
36  PATH_SUFFIXES include include/CEGUI CEGUI.framework/Headers
37)
[7960]38
39# Inspect CEGUIVersion.h for the version number
40DETERMINE_VERSION(CEGUI ${CEGUI_INCLUDE_DIR}/CEGUIVersion.h)
41
42# Find CEGUI library
[2710]43FIND_LIBRARY(CEGUI_LIBRARY_OPTIMIZED
44  NAMES CEGUIBase CEGUI
45  PATHS $ENV{CEGUIDIR}
46  PATH_SUFFIXES lib bin
47)
48FIND_LIBRARY(CEGUI_LIBRARY_DEBUG
49  NAMES
50    CEGUIBased CEGUIBase_d CEGUIBaseD CEGUIBase_D
51    CEGUId CEGUI_d CEGUID CEGUI_D
52  PATHS $ENV{CEGUIDIR}
53  PATH_SUFFIXES lib bin
54)
[1776]55
[7941]56# Find CEGUILua libraries
57FIND_LIBRARY(CEGUILUA_LIBRARY_OPTIMIZED
58  NAMES CEGUILua CEGUILuaScriptModule
59  PATHS $ENV{CEGUIDIR}
60  PATH_SUFFIXES lib bin
61)
62FIND_LIBRARY(CEGUILUA_LIBRARY_DEBUG
63  NAMES CEGUILuad CEGUILua_d CEGUILuaScriptModuled CEGUILuaScriptModule_d
64  PATHS $ENV{CEGUIDIR}
65  PATH_SUFFIXES lib bin
66)
67
[8061]68# Find CEGUI Tolua++ include file
69# We only need to add this path since we use tolua++ like a normal
70# dependency but it is shipped with CEGUI.
71FIND_PATH(CEGUI_TOLUA_INCLUDE_DIR tolua++.h
72  PATHS
73    ${CEGUI_INCLUDE_DIR}
74    # For newer CEGUI versions >= 0.7
75    ${CEGUI_INCLUDE_DIR}/ScriptingModules/LuaScriptModule/support/tolua++
76  NO_DEFAULT_PATH # Has to be in a CEGUI_INCLUDE_DIR somewhere
77)
[7941]78# Find CEGUI Tolua++ libraries
79FIND_LIBRARY(CEGUI_TOLUA_LIBRARY_OPTIMIZED
80  NAMES CEGUItoluapp tolua++
81  PATHS $ENV{CEGUIDIR}
82  PATH_SUFFIXES lib bin
83)
84FIND_LIBRARY(CEGUI_TOLUA_LIBRARY_DEBUG
85  NAMES CEGUItoluappd CEGUItoluapp_d tolua++d tolua++_d
86  PATHS $ENV{CEGUIDIR}
87  PATH_SUFFIXES lib bin
88)
89
[7960]90# Newer versions of CEGUI have the renderer for OGRE shipped with them
91COMPARE_VERSION_STRINGS("${CEGUI_VERSION}" "0.7" _version_compare TRUE)
92IF(_version_compare GREATER -1)
93  # Find CEGUI OGRE Renderer libraries
94  FIND_LIBRARY(CEGUI_OGRE_RENDERER_LIBRARY_OPTIMIZED
95    NAMES CEGUIOgreRenderer
96    PATHS $ENV{CEGUIDIR}
97    PATH_SUFFIXES lib bin
98  )
99  FIND_LIBRARY(CEGUI_OGRE_RENDERER_LIBRARY_DEBUG
100    NAMES CEGUIOgreRendererd CEGUIOgreRenderer_d
101    PATHS $ENV{CEGUIDIR}
102    PATH_SUFFIXES lib bin
103  )
104  SET(CEGUI_OGRE_RENDERER_LIBRARY_NAME CEGUI_OGRE_RENDERER_LIBRARY_OPTIMIZED)
105ELSE()
106  SET(CEGUI_OGRE_RENDERER_BUILD_REQUIRED TRUE)
107ENDIF()
[1776]108
[2710]109# Handle the REQUIRED argument and set CEGUI_FOUND
110# Also checks the version requirements if given
111FIND_PACKAGE_HANDLE_ADVANCED_ARGS(CEGUI DEFAULT_MSG "${CEGUI_VERSION}"
[7941]112  CEGUI_INCLUDE_DIR
[2710]113  CEGUI_LIBRARY_OPTIMIZED
[7941]114  CEGUILUA_LIBRARY_OPTIMIZED
[8061]115  CEGUI_TOLUA_INCLUDE_DIR
[7941]116  CEGUI_TOLUA_LIBRARY_OPTIMIZED
[7960]117  ${CEGUI_OGRE_RENDERER_LIBRARY_NAME}
[2710]118)
[1776]119
[2710]120# Collect optimized and debug libraries
121HANDLE_LIBRARY_TYPES(CEGUI)
[7941]122HANDLE_LIBRARY_TYPES(CEGUILUA)
123HANDLE_LIBRARY_TYPES(CEGUI_TOLUA)
[7960]124IF(NOT CEGUI_OGRE_RENDERER_BUILD_REQUIRED)
125  HANDLE_LIBRARY_TYPES(CEGUI_OGRE_RENDERER)
126ENDIF()
[1776]127
[2710]128MARK_AS_ADVANCED(
129  CEGUI_INCLUDE_DIR
130  CEGUI_LIBRARY_OPTIMIZED
131  CEGUI_LIBRARY_DEBUG
[7941]132  CEGUILUA_LIBRARY_OPTIMIZED
133  CEGUILUA_LIBRARY_DEBUG
[8061]134  CEGUI_TOLUA_INCLUDE_DIR
[7941]135  CEGUI_TOLUA_LIBRARY_OPTIMIZED
136  CEGUI_TOLUA_LIBRARY_DEBUG
[7960]137  CEGUI_OGRE_RENDERER_LIBRARY_OPTIMIZED
138  CEGUI_OGRE_RENDERER_LIBRARY_DEBUG
[2710]139)
Note: See TracBrowser for help on using the repository browser.