Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/ogre1.9/cmake/tools/FindCEGUI.cmake @ 11283

Last change on this file since 11283 was 11211, checked in by bknecht, 9 years ago

Merging cegui0.8 branch into ogre1.9 branch

  • Property svn:eol-style set to native
File size: 5.9 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.
[8351]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
[8351]28INCLUDE(CompareVersionStrings)
[2710]29INCLUDE(DetermineVersion)
30INCLUDE(FindPackageHandleAdvancedArgs)
31INCLUDE(HandleLibraryTypes)
[1505]32
[9675]33# Determine CEGUI's version
[11211]34#FIND_FILE(CEGUI_VERSION_FILE Version.h
35#  PATHS $ENV{CEGUIDIR}
36#  PATH_SUFFIXES include include/CEGUI include/cegui-0.8.4/CEGUI
37#)
38file(GLOB CEGUI_VERSION_FILE "/usr/include/cegui-*/CEGUI/Version.h")
39message("Found File: " ${CEGUI_VERSION_FILE})
[9675]40DETERMINE_VERSION(CEGUI ${CEGUI_VERSION_FILE})
[11211]41message("Found Version: ${CEGUI_VERSION}")
[8351]42
[9675]43# Find CEGUI headers
[11211]44COMPARE_VERSION_STRINGS("${CEGUI_VERSION}" "0.8" _version_0_8_compare)
45message("CEGUI Version: ${_version_0_8_compare}")
[9675]46# Version 0.8 introduced a new directory and file naming convention
47IF(_version_0_8_compare GREATER -1)
48  # 0.8 and newer
49  FIND_PATH(CEGUI_INCLUDE_DIR CEGUI/CEGUI.h
50    PATHS $ENV{CEGUIDIR}
[11211]51    PATH_SUFFIXES include/cegui-${CEGUI_VERSION}/
[9675]52  )
53ELSE()
[11101]54  # 0.7 and older
[9675]55  FIND_PATH(CEGUI_INCLUDE_DIR CEGUI.h
56    PATHS $ENV{CEGUIDIR}
57    PATH_SUFFIXES include include/CEGUI
58  )
59ENDIF()
[8351]60
61# Find CEGUI library
[2710]62FIND_LIBRARY(CEGUI_LIBRARY_OPTIMIZED
[9675]63  NAMES CEGUIBase CEGUI CEGUIBase-0
[2710]64  PATHS $ENV{CEGUIDIR}
65  PATH_SUFFIXES lib bin
66)
67FIND_LIBRARY(CEGUI_LIBRARY_DEBUG
68  NAMES
69    CEGUIBased CEGUIBase_d CEGUIBaseD CEGUIBase_D
[10208]70    CEGUId CEGUI_d CEGUID CEGUI_D CEGUIBase-0_d
[2710]71  PATHS $ENV{CEGUIDIR}
72  PATH_SUFFIXES lib bin
73)
[1776]74
[8351]75# Find CEGUILua headers
[9675]76FIND_PATH(CEGUILUA_INCLUDE_DIR CEGUILua.h Functor.h
[8351]77  PATHS
78    $ENV{CEGUIDIR}
79    $ENV{CEGUILUADIR}
80    ${CEGUI_INCLUDE_DIR}/ScriptingModules/LuaScriptModule
[9675]81    ${CEGUI_INCLUDE_DIR}/CEGUI/ScriptModules/Lua
[8351]82  PATH_SUFFIXES include include/CEGUI
83)
84# Find CEGUILua libraries
85FIND_LIBRARY(CEGUILUA_LIBRARY_OPTIMIZED
[9675]86  NAMES CEGUILua CEGUILuaScriptModule CEGUILuaScriptModule-0
[8351]87  PATHS $ENV{CEGUIDIR} $ENV{CEGUILUADIR}
88  PATH_SUFFIXES lib bin
89)
90FIND_LIBRARY(CEGUILUA_LIBRARY_DEBUG
91  NAMES CEGUILuad CEGUILua_d CEGUILuaScriptModuled CEGUILuaScriptModule_d
[10208]92  CEGUILuaScriptModule-0_d
[8351]93  PATHS $ENV{CEGUIDIR} $ENV{CEGUILUADIR}
94  PATH_SUFFIXES lib bin
95)
[1776]96
[8351]97# Find CEGUI Tolua++ include file
98# We only need to add this path since we use tolua++ like a normal
99# dependency but it is shipped with CEGUILua.
100FIND_PATH(CEGUI_TOLUA_INCLUDE_DIR tolua++.h
101  PATHS
102    ${CEGUILUA_INCLUDE_DIR}
103    # For newer CEGUI versions >= 0.7
104    ${CEGUILUA_INCLUDE_DIR}/support/tolua++
[9675]105    ${DEP_INCLUDE_DIR}/tolua++/include
[8351]106    # For Mac OS X, tolua++ is a separate framework in the dependency package
107    ${DEP_FRAMEWORK_DIR}
[11211]108    #NO_DEFAULT_PATH # Don't attempt to find tolua++ installed on the system
[8351]109)
110# Find CEGUI Tolua++ libraries
111FIND_LIBRARY(CEGUI_TOLUA_LIBRARY_OPTIMIZED
[11117]112  NAMES CEGUItoluapp tolua++ toluapp ceguitolua++ tolua++5.1
[8351]113  PATHS $ENV{CEGUIDIR} ${CEGUITOLUADIR}
114  PATH_SUFFIXES lib bin
115)
116FIND_LIBRARY(CEGUI_TOLUA_LIBRARY_DEBUG
117  NAMES CEGUItoluappd CEGUItoluapp_d tolua++d tolua++_d
118  PATHS $ENV{CEGUIDIR} ${CEGUITOLUADIR}
119  PATH_SUFFIXES lib bin
120)
121
122# Newer versions of CEGUI have the renderer for OGRE shipped with them
[9675]123COMPARE_VERSION_STRINGS("${CEGUI_VERSION}" "0.7" _version_0_7_compare TRUE)
[11211]124message("another version: ${CEGUI_INCLUDE_DIR}/RendererModules/Ogre")
[9675]125IF(_version_0_7_compare GREATER -1)
[8351]126  # Find CEGUI OGRE Renderer headers
[9675]127  FIND_PATH(CEGUI_OGRE_RENDERER_INCLUDE_DIR CEGUIOgreRenderer.h Renderer.h
[8351]128    PATHS
129      $ENV{CEGUIDIR}
130      $ENV{CEGUIOGRERENDERERDIR}
[11211]131      ${CEGUI_INCLUDE_DIR}/CEGUI/RendererModules/Ogre
[8351]132    PATH_SUFFIXES include include/CEGUI
133  )
134  # Find CEGUI OGRE Renderer libraries
135  FIND_LIBRARY(CEGUI_OGRE_RENDERER_LIBRARY_OPTIMIZED
[9675]136    NAMES CEGUIOgreRenderer CEGUIOgreRenderer-0
[8351]137    PATHS $ENV{CEGUIDIR} $ENV{CEGUIOGRERENDERERDIR}
138    PATH_SUFFIXES lib bin
139  )
140  FIND_LIBRARY(CEGUI_OGRE_RENDERER_LIBRARY_DEBUG
[10208]141    NAMES CEGUIOgreRendererd CEGUIOgreRenderer_d CEGUIOgreRenderer-0_d
[8351]142    PATHS $ENV{CEGUIDIR} $ENV{CEGUIOGRERENDERERDIR}
143    PATH_SUFFIXES lib bin
144  )
145  SET(CEGUI_OGRE_RENDERER_REQUIRED_VARIABLES
146    CEGUI_OGRE_RENDERER_INCLUDE_DIR
147    CEGUI_OGRE_RENDERER_LIBRARY_OPTIMIZED
148  )
149ELSE()
150  SET(CEGUI_OLD_VERSION TRUE)
151  SET(CEGUI_OGRE_RENDERER_BUILD_REQUIRED TRUE)
152ENDIF()
153
[2710]154# Handle the REQUIRED argument and set CEGUI_FOUND
155# Also checks the version requirements if given
156FIND_PACKAGE_HANDLE_ADVANCED_ARGS(CEGUI DEFAULT_MSG "${CEGUI_VERSION}"
[8351]157  CEGUI_INCLUDE_DIR
[2710]158  CEGUI_LIBRARY_OPTIMIZED
[8351]159  CEGUILUA_INCLUDE_DIR
160  CEGUILUA_LIBRARY_OPTIMIZED
161  CEGUI_TOLUA_INCLUDE_DIR
162  CEGUI_TOLUA_LIBRARY_OPTIMIZED
163  ${CEGUI_OGRE_RENDERER_REQUIRED_VARIABLES}
[2710]164)
[1776]165
[2710]166# Collect optimized and debug libraries
167HANDLE_LIBRARY_TYPES(CEGUI)
[8351]168HANDLE_LIBRARY_TYPES(CEGUILUA)
169HANDLE_LIBRARY_TYPES(CEGUI_TOLUA)
170IF(NOT CEGUI_OGRE_RENDERER_BUILD_REQUIRED)
171  HANDLE_LIBRARY_TYPES(CEGUI_OGRE_RENDERER)
172ENDIF()
[1776]173
[2710]174MARK_AS_ADVANCED(
175  CEGUI_INCLUDE_DIR
176  CEGUI_LIBRARY_OPTIMIZED
177  CEGUI_LIBRARY_DEBUG
[8351]178  CEGUILUA_INCLUDE_DIR
179  CEGUILUA_LIBRARY_OPTIMIZED
180  CEGUILUA_LIBRARY_DEBUG
181  CEGUI_TOLUA_INCLUDE_DIR
182  CEGUI_TOLUA_LIBRARY_OPTIMIZED
183  CEGUI_TOLUA_LIBRARY_DEBUG
184  CEGUI_OGRE_RENDERER_INCLUDE_DIR
185  CEGUI_OGRE_RENDERER_LIBRARY_OPTIMIZED
186  CEGUI_OGRE_RENDERER_LIBRARY_DEBUG
[2710]187)
Note: See TracBrowser for help on using the repository browser.