Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

Last change on this file since 8082 was 8082, checked in by rgrieder, 13 years ago

Make sure all required CEGUI extras are confirmed to be found by the CMake run.

  • Property svn:eol-style set to native
File size: 4.6 KB
Line 
1# Find CEGUI includes and library
2#
3# This module defines
4#  CEGUI_INCLUDE_DIR
5#  CEGUI_LIBRARY, the library to link against to use CEGUI.
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++.
8#  CEGUI_FOUND, If false, do not try to use CEGUI
9#  CEGUI_VERSION, the version as string "x.y.z"
10#
11# Input:
12#  ENV{CEGUIDIR}, CEGUI path, optional
13#
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.
22#
23# Several changes and additions by Fabian 'x3n' Landau
24# Lots of simplifications by Adrian Friedli and Reto Grieder
25# Version checking and CEGUILua finding by Reto Grieder
26#                 > www.orxonox.net <
27
28INCLUDE(CompareVersionStrings)
29INCLUDE(DetermineVersion)
30INCLUDE(FindPackageHandleAdvancedArgs)
31INCLUDE(HandleLibraryTypes)
32
33# Find CEGUI headers
34FIND_PATH(CEGUI_INCLUDE_DIR CEGUI.h
35  PATHS $ENV{CEGUIDIR}
36  PATH_SUFFIXES include include/CEGUI CEGUI.framework/Headers
37)
38
39# Inspect CEGUIVersion.h for the version number
40DETERMINE_VERSION(CEGUI ${CEGUI_INCLUDE_DIR}/CEGUIVersion.h)
41
42# Find CEGUI library
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)
55
56# Find CEGUILua headers
57FIND_PATH(CEGUILUA_INCLUDE_DIR CEGUILua.h
58  PATHS $ENV{CEGUIDIR} ${CEGUI_INCLUDE_DIR}/ScriptingModules/LuaScriptModule
59  PATH_SUFFIXES include include/CEGUI CEGUI.framework/Headers
60)
61# Find CEGUILua libraries
62FIND_LIBRARY(CEGUILUA_LIBRARY_OPTIMIZED
63  NAMES CEGUILua CEGUILuaScriptModule
64  PATHS $ENV{CEGUIDIR}
65  PATH_SUFFIXES lib bin
66)
67FIND_LIBRARY(CEGUILUA_LIBRARY_DEBUG
68  NAMES CEGUILuad CEGUILua_d CEGUILuaScriptModuled CEGUILuaScriptModule_d
69  PATHS $ENV{CEGUIDIR}
70  PATH_SUFFIXES lib bin
71)
72
73# Find CEGUI Tolua++ include file
74# We only need to add this path since we use tolua++ like a normal
75# dependency but it is shipped with CEGUILua.
76FIND_PATH(CEGUI_TOLUA_INCLUDE_DIR tolua++.h
77  PATHS
78    ${CEGUILUA_INCLUDE_DIR}
79    # For newer CEGUI versions >= 0.7
80    ${CEGUILUA_INCLUDE_DIR}/support/tolua++
81  NO_DEFAULT_PATH # MUST be in CEGUILUA_INCLUDE_DIR somewhere
82)
83# Find CEGUI Tolua++ libraries
84FIND_LIBRARY(CEGUI_TOLUA_LIBRARY_OPTIMIZED
85  NAMES CEGUItoluapp tolua++
86  PATHS $ENV{CEGUIDIR}
87  PATH_SUFFIXES lib bin
88)
89FIND_LIBRARY(CEGUI_TOLUA_LIBRARY_DEBUG
90  NAMES CEGUItoluappd CEGUItoluapp_d tolua++d tolua++_d
91  PATHS $ENV{CEGUIDIR}
92  PATH_SUFFIXES lib bin
93)
94
95# Newer versions of CEGUI have the renderer for OGRE shipped with them
96COMPARE_VERSION_STRINGS("${CEGUI_VERSION}" "0.7" _version_compare TRUE)
97IF(_version_compare GREATER -1)
98  # Find CEGUI OGRE Renderer headers
99  FIND_PATH(CEGUI_OGRE_RENDERER_INCLUDE_DIR CEGUIOgreRenderer.h
100    PATHS $ENV{CEGUIDIR} ${CEGUI_INCLUDE_DIR}/RendererModules/Ogre
101    PATH_SUFFIXES include include/CEGUI CEGUI.framework/Headers
102  )
103  # Find CEGUI OGRE Renderer libraries
104  FIND_LIBRARY(CEGUI_OGRE_RENDERER_LIBRARY_OPTIMIZED
105    NAMES CEGUIOgreRenderer
106    PATHS $ENV{CEGUIDIR}
107    PATH_SUFFIXES lib bin
108  )
109  FIND_LIBRARY(CEGUI_OGRE_RENDERER_LIBRARY_DEBUG
110    NAMES CEGUIOgreRendererd CEGUIOgreRenderer_d
111    PATHS $ENV{CEGUIDIR}
112    PATH_SUFFIXES lib bin
113  )
114  SET(CEGUI_OGRE_RENDERER_REQUIRED_VARIABLES
115    CEGUI_OGRE_RENDERER_INCLUDE_DIR
116    CEGUI_OGRE_RENDERER_LIBRARY_OPTIMIZED
117  )
118ELSE()
119  SET(CEGUI_OGRE_RENDERER_BUILD_REQUIRED TRUE)
120ENDIF()
121
122# Handle the REQUIRED argument and set CEGUI_FOUND
123# Also checks the version requirements if given
124FIND_PACKAGE_HANDLE_ADVANCED_ARGS(CEGUI DEFAULT_MSG "${CEGUI_VERSION}"
125  CEGUI_INCLUDE_DIR
126  CEGUI_LIBRARY_OPTIMIZED
127  CEGUILUA_INCLUDE_DIR
128  CEGUILUA_LIBRARY_OPTIMIZED
129  CEGUI_TOLUA_INCLUDE_DIR
130  CEGUI_TOLUA_LIBRARY_OPTIMIZED
131  ${CEGUI_OGRE_RENDERER_REQUIRED_VARIABLES}
132)
133
134# Collect optimized and debug libraries
135HANDLE_LIBRARY_TYPES(CEGUI)
136HANDLE_LIBRARY_TYPES(CEGUILUA)
137HANDLE_LIBRARY_TYPES(CEGUI_TOLUA)
138IF(NOT CEGUI_OGRE_RENDERER_BUILD_REQUIRED)
139  HANDLE_LIBRARY_TYPES(CEGUI_OGRE_RENDERER)
140ENDIF()
141
142MARK_AS_ADVANCED(
143  CEGUI_INCLUDE_DIR
144  CEGUI_LIBRARY_OPTIMIZED
145  CEGUI_LIBRARY_DEBUG
146  CEGUILUA_INCLUDE_DIR
147  CEGUILUA_LIBRARY_OPTIMIZED
148  CEGUILUA_LIBRARY_DEBUG
149  CEGUI_TOLUA_INCLUDE_DIR
150  CEGUI_TOLUA_LIBRARY_OPTIMIZED
151  CEGUI_TOLUA_LIBRARY_DEBUG
152  CEGUI_OGRE_RENDERER_INCLUDE_DIR
153  CEGUI_OGRE_RENDERER_LIBRARY_OPTIMIZED
154  CEGUI_OGRE_RENDERER_LIBRARY_DEBUG
155)
Note: See TracBrowser for help on using the repository browser.