Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ################################################################################
- # FindCEGUI
- #
- # Locate CEGUI LIBRARIES
- #
- # This module defines
- # CEGUI_FOUND, if false, do not try to link to CEGUI
- # CEGUI_INCLUDE_DIR, where to find headers.
- # CEGUI_LIBRARIES, the LIBRARIES to link against
- # CEGUI_BINARY_REL - location of the main CEGUI binary (win32 non-static only, release)
- # CEGUI_BINARY_DBG - location of the main CEGUI binaries (win32 non-static only, debug)
- #
- #
- # Modules :
- # CEGUI_${COMPONENT}_FOUND - ${COMPONENT} is available
- # CEGUI_${COMPONENT}_INCLUDE_DIRS - additional include directories for ${COMPONENT}
- # CEGUI_${COMPONENT}_LIBRARIES - link these to use ${COMPONENT}
- # CEGUI_${COMPONENT}_BINARY_REL - location of the component binary (win32 non-static only, release)
- # CEGUI_${COMPONENT}_BINARY_DBG - location of the component binary (win32 non-static only, debug)
- #
- # VERSION 0.7.X:
- # WindowsRenderer:
- # Falagard
- # Renderer:
- # Direct3D9Renderer Direct3D10Renderer Direct3D11Renderer IrrlichtRenderer NullRenderer OgreRenderer OpenGLRenderer
- # ImageCodec:
- # CoronaImageCodec DevILImageCodec FreeImageImageCodec SILLYImageCodec STBImageCodec TGAImageCodec
- # Parser:
- # ExpatParser LibxmlParser RapidXMLParser TinyXMLParser XercesParser)
- # Script:
- # LuaScriptModule toluapp
- # VERSION 0.8.X:
- # WindowsRenderer:
- # CoreWindowRendererSet
- # Renderer:
- # Direct3D9Renderer Direct3D10Renderer Direct3D11Renderer IrrlichtRenderer NullRenderer OgreRenderer OpenGLRenderer OpenGL3Renderer OpenGLESRenderer
- # ImageCodec:
- # CoronaImageCodec DevILImageCodec FreeImageImageCodec SILLYImageCodec STBImageCodec TGAImageCodec PVRImageCodec
- # Parser:
- # ExpatParser LibXMLParser RapidXMLParser TinyXMLParser XercesParser)
- # Script:
- # LuaScriptModule
- #
- # author: Guillaume Smaha
- #
- # People have asked us to include a FindCEGUI that is high quality that they will
- # be able to copy and use to find CEGUI, so we have finally done that.
- #
- # If you have improvements for this scripts, please consider sending them upstream.
- # See https://bitbucket.org/cegui/cegui
- ################################################################################
- ################################################################################
- # Get the value of a preprocessor entry
- ################################################################################
- macro(get_preprocessor_entry CONTENTS KEYWORD VARIABLE)
- string(REGEX MATCH
- "# *define +${KEYWORD} +((\"([^\n]*)\")|([^ \n]*))"
- PREPROC_TEMP_VAR
- ${${CONTENTS}}
- )
- if (CMAKE_MATCH_3)
- set(${VARIABLE} ${CMAKE_MATCH_3})
- else ()
- set(${VARIABLE} ${CMAKE_MATCH_4})
- endif ()
- endmacro()
- ################################################################################
- # Check if exist a preprocessor entry
- ################################################################################
- macro(has_preprocessor_entry CONTENTS KEYWORD VARIABLE)
- string(REGEX MATCH
- "\n *# *define +(${KEYWORD})"
- PREPROC_TEMP_VAR
- ${${CONTENTS}}
- )
- if (CMAKE_MATCH_1)
- set(${VARIABLE} TRUE)
- else ()
- set(${VARIABLE} FALSE)
- endif ()
- endmacro()
- ################################################################################
- # Replace the value of a preprocessor entry
- ################################################################################
- macro(replace_preprocessor_entry VARIABLE KEYWORD NEW_VALUE)
- string(REGEX REPLACE
- "(// *)?# *define +${KEYWORD} +[^ \n]*"
- "#define ${KEYWORD} ${NEW_VALUE}"
- ${VARIABLE}_TEMP
- ${${VARIABLE}}
- )
- set(${VARIABLE} ${${VARIABLE}_TEMP})
- endmacro()
- ################################################################################
- # Define the value of preprocessor entry
- ################################################################################
- macro(set_preprocessor_entry VARIABLE KEYWORD ENABLE)
- if (${ENABLE})
- set(TMP_REPLACE_STR "#define ${KEYWORD}")
- else ()
- set(TMP_REPLACE_STR "// #define ${KEYWORD}")
- endif ()
- string(REGEX REPLACE
- "(// *)?# *define +${KEYWORD} *\n"
- ${TMP_REPLACE_STR}
- ${VARIABLE}_TEMP
- ${${VARIABLE}}
- )
- set(${VARIABLE} ${${VARIABLE}_TEMP})
- endmacro()
- ################################################################################
- # Begin processing of package
- ################################################################################
- macro(findpkg_begin PREFIX)
- if (NOT ${PREFIX}_FIND_QUIETLY)
- message(STATUS "Looking for ${PREFIX}...")
- endif ()
- endmacro(findpkg_begin)
- ################################################################################
- # Display a status message unless FIND_QUIETLY is set
- ################################################################################
- macro(pkg_message PREFIX)
- if (NOT ${PREFIX}_FIND_QUIETLY)
- message(STATUS ${ARGN})
- endif ()
- endmacro(pkg_message)
- ################################################################################
- # Get environment variable, define it as ENV_$var and make sure backslashes are converted to forward slashes
- ################################################################################
- macro(getenv_path VAR)
- set(ENV_${VAR} $ENV{${VAR}})
- # replace won't work if var is blank
- if (ENV_${VAR})
- string( REGEX REPLACE "\\\\" "/" ENV_${VAR} ${ENV_${VAR}} )
- endif ()
- endmacro(getenv_path)
- ################################################################################
- # Construct search paths for includes and libraries from a PREFIX_PATH
- ################################################################################
- macro(create_search_paths PREFIX)
- foreach(dir ${${PREFIX}_PREFIX_PATH})
- set(${PREFIX}_INC_SEARCH_PATH ${${PREFIX}_INC_SEARCH_PATH}
- ${dir}/include ${dir}/Include ${dir}/include/${PREFIX} ${dir}/Headers)
- set(${PREFIX}_INC_SEARCH_PATH ${${PREFIX}_INC_SEARCH_PATH}
- ${dir}/${PREFIX}/include ${dir}/${PREFIX}/Include ${dir}/${PREFIX}/include/${PREFIX} ${dir}/${PREFIX}/Headers)
- set(${PREFIX}_LIB_SEARCH_PATH ${${PREFIX}_LIB_SEARCH_PATH}
- ${dir}/lib ${dir}/Lib ${dir}/lib/${PREFIX} ${dir}/Libs)
- set(${PREFIX}_BIN_SEARCH_PATH ${${PREFIX}_BIN_SEARCH_PATH}
- ${dir}/bin)
- endforeach(dir)
- if(ANDROID)
- set(${PREFIX}_LIB_SEARCH_PATH ${${PREFIX}_LIB_SEARCH_PATH} ${OGRE_DEPENDENCIES_DIR}/lib/${ANDROID_ABI})
- endif()
- set(${PREFIX}_FRAMEWORK_SEARCH_PATH ${${PREFIX}_PREFIX_PATH})
- endmacro(create_search_paths)
- ################################################################################
- # clear cache variables if a certain variable changed
- ################################################################################
- macro(clear_if_changed TESTVAR)
- # test against internal check variable
- # HACK: Apparently, adding a variable to the cache cleans up the list
- # a bit. We need to also remove any empty strings from the list, but
- # at the same time ensure that we are actually dealing with a list.
- list(APPEND ${TESTVAR} "")
- list(REMOVE_ITEM ${TESTVAR} "")
- if (NOT "${${TESTVAR}}" STREQUAL "${${TESTVAR}_INT_CHECK}")
- message(STATUS "${TESTVAR} changed.")
- foreach(var ${ARGN})
- set(${var} "NOTFOUND" CACHE STRING "${var}-docstring" FORCE)
- endforeach(var)
- endif ()
- set(${TESTVAR}_INT_CHECK ${${TESTVAR}} CACHE INTERNAL "${TESTVAR}-docstring" FORCE)
- endmacro(clear_if_changed)
- ################################################################################
- # Try to get some hints from pkg-config, if available
- ################################################################################
- macro(use_pkgconfig PREFIX PKGNAME)
- find_package(PkgConfig)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(${PREFIX} ${PKGNAME} QUIET)
- endif ()
- endmacro (use_pkgconfig)
- ################################################################################
- # Couple a set of release AND debug libraries (or frameworks)
- ################################################################################
- macro(make_library_set PREFIX)
- if (${PREFIX}_FWK)
- set(${PREFIX} ${${PREFIX}_FWK})
- elseif (${PREFIX}_REL AND ${PREFIX}_DBG)
- set(${PREFIX} optimized ${${PREFIX}_REL} debug ${${PREFIX}_DBG})
- elseif (${PREFIX}_REL)
- set(${PREFIX} ${${PREFIX}_REL})
- elseif (${PREFIX}_DBG)
- set(${PREFIX} ${${PREFIX}_DBG})
- endif ()
- endmacro(make_library_set)
- ################################################################################
- # Generate debug names from given release names
- ################################################################################
- macro(get_debug_names PREFIX)
- foreach(i ${${PREFIX}})
- set(${PREFIX}_DBG ${${PREFIX}_DBG} ${i}d ${i}D ${i}_d ${i}_D ${i}_debug ${i})
- endforeach(i)
- endmacro(get_debug_names)
- ################################################################################
- # Add the parent dir from DIR to VAR
- ################################################################################
- macro(add_parent_dir VAR DIR)
- get_filename_component(${DIR}_TEMP "${${DIR}}/.." ABSOLUTE)
- set(${VAR} ${${VAR}} ${${DIR}_TEMP})
- endmacro(add_parent_dir)
- ################################################################################
- # Do the final processing for the package find.
- ################################################################################
- macro(findpkg_finish PREFIX)
- # skip if already processed during this run
- if (NOT ${PREFIX}_FOUND)
- if (${PREFIX}_INCLUDE_DIR AND ${PREFIX}_LIBRARY)
- set(${PREFIX}_FOUND TRUE)
- set(${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIR})
- set(${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARY})
- if (NOT ${PREFIX}_FIND_QUIETLY)
- message(STATUS "Found ${PREFIX}: ${${PREFIX}_LIBRARIES}")
- endif ()
- else ()
- if (NOT ${PREFIX}_FIND_QUIETLY)
- message(STATUS "Could not locate ${PREFIX}")
- endif ()
- if (${PREFIX}_FIND_REQUIRED)
- message(FATAL_ERROR "Required library ${PREFIX} not found! Install the library (including dev packages) and try again. If the library is already installed, set the missing variables manually in cmake.")
- endif ()
- endif ()
- mark_as_advanced(${PREFIX}_FOUND ${PREFIX}_LIBRARIES ${PREFIX}_INCLUDE_DIRS ${PREFIX}_INCLUDE_DIR ${PREFIX}_LIBRARY ${PREFIX}_LIBRARY_REL ${PREFIX}_LIBRARY_DBG ${PREFIX}_LIBRARY_FWK)
- endif ()
- endmacro(findpkg_finish)
- #########################################################
- # Find cegui modules
- #########################################################
- macro(cegui_find_modules PLUGIN_COMPONENT)
- foreach (comp ${CEGUI_${PLUGIN_COMPONENT}_MODULES})
- set(LIBNAME ${comp})
- set(HEADER ${CEGUI_${PLUGIN_COMPONENT}_MODULES_${comp}_HEADER})
- set(PKGCONFIG ${CEGUI_${PLUGIN_COMPONENT}_MODULES_${comp}_PKGCONFIG})
- set(CHECKNOPREFIX ${CEGUI_${PLUGIN_COMPONENT}_MODULES_${comp}_CHECKNOPREFIX})
- if (NOT "${HEADER}" STREQUAL "")
- findpkg_begin(CEGUI_${comp})
- if(PKGCONFIG)
- use_pkgconfig(CEGUI_${comp}_PKGC "CEGUI-${PKGCONFIG}")
- if(NOT CEGUI_${comp}_PKGC_INCLUDE_DIRS AND CEGUI_LIB_SUFFIX)
- use_pkgconfig(CEGUI_${comp}_PKGC "CEGUI${CEGUI_LIB_SUFFIX}-${PKGCONFIG}")
- endif()
- endif()
- list(LENGTH HEADER len)
- math(EXPR lenmax "${len} - 1")
- foreach(val RANGE ${lenmax})
- list(GET HEADER ${val} pathHeader)
- if(CEGUI_${comp}_INCLUDE_DIR)
- set(CEGUI_${comp}_INCLUDE_DIR_TMP ${CEGUI_${comp}_INCLUDE_DIR})
- unset(CEGUI_${comp}_INCLUDE_DIR CACHE)
- endif()
- get_filename_component(head "${pathHeader}" NAME)
- get_filename_component(dir "${pathHeader}" DIRECTORY)
- if (NOT "${dir}" STREQUAL "")
- set(dir "${dir}/")
- endif ()
- find_path(CEGUI_${comp}_INCLUDE_DIR NAMES ${head} HINTS ${CEGUI_INCLUDE_DIRS} ${CEGUI_${comp}_PKGC_INCLUDE_DIRS} PATH_SUFFIXES ${dir} CEGUI/${dir})
- if(CEGUI_${comp}_INCLUDE_DIR_TMP)
- set(CEGUI_${comp}_INCLUDE_DIR ${CEGUI_${comp}_INCLUDE_DIR} ${CEGUI_${comp}_INCLUDE_DIR_TMP})
- unset(CEGUI_${comp}_INCLUDE_DIR_TMP CACHE)
- endif()
- endforeach()
- list(REMOVE_DUPLICATES CEGUI_${comp}_INCLUDE_DIR)
- set(CEGUI_SUBLIB_DIR "cegui-${CEGUI_VERSION_MAJOR}.${CEGUI_VERSION_MINOR}")
- set(CEGUI_${comp}_LIBRARY_NAMES "CEGUI${comp}")
- get_debug_names(CEGUI_${comp}_LIBRARY_NAMES)
- set(CEGUI_${comp}_LIBRARY_NAMES_SUFFIX "CEGUI${comp}${CEGUI_LIB_SUFFIX}")
- get_debug_names(CEGUI_${comp}_LIBRARY_NAMES_SUFFIX)
- find_library(CEGUI_${comp}_LIBRARY_REL NAMES ${CEGUI_${comp}_LIBRARY_NAMES} ${CEGUI_${comp}_LIBRARY_NAMES_SUFFIX} HINTS ${CEGUI_LIBRARY_DIR_REL} ${CEGUI_LIBRARY_DIR_REL}/${CEGUI_SUBLIB_DIR} ${CEGUI_${comp}_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" "Release" "RelWithDebInfo" "MinSizeRel")
- find_library(CEGUI_${comp}_LIBRARY_DBG NAMES ${CEGUI_${comp}_LIBRARY_NAMES_DBG} ${CEGUI_${comp}_LIBRARY_NAMES_SUFFIX_DBG} HINTS ${CEGUI_LIBRARY_DIR_DBG} ${CEGUI_LIBRARY_DIR_DBG}/${CEGUI_SUBLIB_DIR} ${CEGUI_${comp}_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" "Debug")
- if(CHECKNOPREFIX AND (NOT CEGUI_${comp}_LIBRARY_REL OR NOT CEGUI_${comp}_LIBRARY_DBG))
- set(CEGUI_${comp}_LIBRARY_NAMES "${comp}")
- get_debug_names(CEGUI_${comp}_LIBRARY_NAMES)
- set(CEGUI_${comp}_LIBRARY_NAMES_SUFFIX "${comp}${CEGUI_LIB_SUFFIX}")
- get_debug_names(CEGUI_${comp}_LIBRARY_NAMES_SUFFIX)
- find_library(CEGUI_${comp}_LIBRARY_REL NAMES ${CEGUI_${comp}_LIBRARY_NAMES} ${CEGUI_${comp}_LIBRARY_NAMES_SUFFIX} HINTS ${CEGUI_LIBRARY_DIR_REL} ${CEGUI_LIBRARY_DIR_REL}/${CEGUI_SUBLIB_DIR} ${CEGUI_${comp}_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" "Release" "RelWithDebInfo" "MinSizeRel")
- find_library(CEGUI_${comp}_LIBRARY_DBG NAMES ${CEGUI_${comp}_LIBRARY_NAMES_DBG} ${CEGUI_${comp}_LIBRARY_NAMES_SUFFIX_DBG} HINTS ${CEGUI_LIBRARY_DIR_DBG} ${CEGUI_LIBRARY_DIR_DBG}/${CEGUI_SUBLIB_DIR} ${CEGUI_${comp}_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" "Debug")
- endif()
- make_library_set(CEGUI_${comp}_LIBRARY)
- if (NOT CEGUI_STATIC)
- if (WIN32)
- find_file(CEGUI_${comp}_BINARY_REL NAMES "CEGUI${comp}.dll" "CEGUI${comp}${CEGUI_LIB_SUFFIX}.dll" HINTS ${CEGUI_BIN_SEARCH_PATH} ${CEGUI_${comp}_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" "Release" "RelWithDebInfo" "MinSizeRel")
- find_file(CEGUI_${comp}_BINARY_DBG NAMES "CEGUI${comp}_d.dll" "CEGUI${comp}${CEGUI_LIB_SUFFIX}_d.dll" HINTS ${CEGUI_BIN_SEARCH_PATH} ${CEGUI_${comp}_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" "Debug")
- if(CHECKNOPREFIX AND (NOT CEGUI_${comp}_LIBRARY_REL OR NOT CEGUI_${comp}_LIBRARY_DBG))
- find_file(CEGUI_${comp}_BINARY_REL NAMES "${comp}${CEGUI_LIB_SUFFIX}.dll" HINTS ${CEGUI_BIN_SEARCH_PATH} PATH_SUFFIXES "" "Release" "RelWithDebInfo" "MinSizeRel")
- find_file(CEGUI_${comp}_BINARY_DBG NAMES "${comp}${CEGUI_LIB_SUFFIX}_d.dll" HINTS ${CEGUI_BIN_SEARCH_PATH} PATH_SUFFIXES "" "Debug")
- endif()
- endif()
- get_filename_component(CEGUI_${comp}_BINARY_DIR_REL "${CEGUI_${comp}_BINARY_REL}" PATH)
- get_filename_component(CEGUI_${comp}_BINARY_DIR_DBG "${CEGUI_${comp}_BINARY_DBG}" PATH)
- mark_as_advanced(CEGUI_${comp}_BINARY_REL CEGUI_${comp}_BINARY_DBG CEGUI_${comp}_BINARY_DIR_REL CEGUI_${comp}_BINARY_DIR_DBG)
- endif()
- findpkg_finish(CEGUI_${comp})
- endif ()
- endforeach (comp)
- endmacro(cegui_find_modules)
- #########################################################
- # register a module
- #########################################################
- macro(cegui_register_module TYPE LIBNAME HEADER PKGCONFIG)
- set(CEGUI_MODULES ${CEGUI_MODULES} ${LIBNAME})
- set(CEGUI_${TYPE}_MODULES ${CEGUI_${TYPE}_MODULES} ${LIBNAME})
- set(CEGUI_${TYPE}_MODULES_${LIBNAME}_HEADER ${HEADER})
- if(NOT "${PKGCONFIG}" STREQUAL "")
- set(CEGUI_${TYPE}_MODULES_${LIBNAME}_PKGCONFIG ${PKGCONFIG})
- endif()
- endmacro()
- #########################################################
- # Main
- #########################################################
- set(CEGUI_VERSION_MAJOR_DEFAULT "0")
- # Register var to check change on base
- set(CEGUI_RESET_VARS CEGUI_CONFIG_INCLUDE_DIR CEGUI_INCLUDE_DIR CEGUI_LIBRARY_REL CEGUI_LIBRARY_DBG)
- set(CEGUI_PREFIX_WATCH ${CEGUI_PREFIX_PATH})
- clear_if_changed(CEGUI_PREFIX_WATCH ${CEGUI_RESET_VARS})
- findpkg_begin(CEGUI)
- # Get path, convert backslashes as ${ENV_${var}}
- getenv_path(CEGUI_HOME)
- getenv_path(CEGUI_DIR)
- getenv_path(CEGUI_ROOT)
- getenv_path(PROGRAMFILES)
- # Determine whether to search for a dynamic or static build
- if (CEGUI_STATIC)
- set(CMAKE_FIND_LIBRARY_SUFFIXES_OLD "${CMAKE_FIND_LIBRARY_SUFFIXES}")
- if (WIN32)
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib;.dll")
- else()
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.so")
- endif()
- endif ()
- # construct search paths from environmental hints and
- # OS specific guesses
- if (WIN32)
- set(CEGUI_PREFIX_GUESSES
- ${ENV_PROGRAMFILES}/cegui
- ${ENV_PROGRAMFILES}/CEGUI
- C:/CEGUI-SDK
- C:/lib/cegui
- [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;CEGUI_HOME]
- [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;CEGUI_DIR]
- [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;CEGUI_ROOT]
- )
- elseif (UNIX)
- set(CEGUI_PREFIX_GUESSES
- /opt/cegui
- /opt/CEGUI
- /usr
- /usr/local
- /usr/local/include/cegui-0/CEGUI
- /usr/local/include/CEGUI/
- $ENV{HOME}/cegui
- $ENV{HOME}/CEGUI
- )
- if (APPLE)
- set(CEGUI_PREFIX_GUESSES
- ${CMAKE_CURRENT_SOURCE_DIR}/lib/macosx
- ${CEGUI_PREFIX_GUESSES}
- )
- endif ()
- endif ()
- set(CEGUI_PREFIX_PATH
- $ENV{CEGUI_HOME} $ENV{CEGUI_DIR} $ENV{CEGUI_ROOT}
- ${CEGUI_PREFIX_GUESSES}
- )
- # Construct search paths for includes and libraries
- create_search_paths(CEGUI)
- # try to locate CEGUI via pkg-config
- use_pkgconfig(CEGUI_PKGC "CEGUI${CEGUI_LIB_SUFFIX};CEGUI${CEGUI_LIB_SUFFIX}-${CEGUI_VERSION_MAJOR_DEFAULT}")
- # locate CEGUI include files
- find_path(CEGUI_CONFIG_INCLUDE_DIR_PREFIX NAMES CEGUIConfig.h HINTS ${CEGUI_INC_SEARCH_PATH} ${CEGUI_FRAMEWORK_INCLUDES} ${CEGUI_PKGC_INCLUDE_DIRS} PATH_SUFFIXES CEGUI cegui cegui-${CEGUI_VERSION_MAJOR_DEFAULT} cegui-${CEGUI_VERSION_MAJOR_DEFAULT}/CEGUI)
- find_path(CEGUI_CONFIG_INCLUDE_DIR NAMES CEGUIConfig.h Config.h HINTS ${CEGUI_INC_SEARCH_PATH} ${CEGUI_FRAMEWORK_INCLUDES} ${CEGUI_PKGC_INCLUDE_DIRS} PATH_SUFFIXES CEGUI cegui cegui-${CEGUI_VERSION_MAJOR_DEFAULT} cegui-${CEGUI_VERSION_MAJOR_DEFAULT}/CEGUI)
- find_path(CEGUI_INCLUDE_DIR NAMES CEGUI.h HINTS ${CEGUI_INC_SEARCH_PATH} ${CEGUI_FRAMEWORK_INCLUDES} ${CEGUI_PKGC_INCLUDE_DIRS} PATH_SUFFIXES CEGUI cegui cegui-${CEGUI_VERSION_MAJOR_DEFAULT} cegui-${CEGUI_VERSION_MAJOR_DEFAULT}/CEGUI)
- set(CEGUI_INCOMPATIBLE FALSE)
- if (CEGUI_INCLUDE_DIR)
- # determine CEGUI version
- if(CEGUI_CONFIG_INCLUDE_DIR_PREFIX)
- file(READ ${CEGUI_INCLUDE_DIR}/CEGUIVersion.h CEGUI_TEMP_VERSION_CONTENT)
- else()
- file(READ ${CEGUI_INCLUDE_DIR}/Version.h CEGUI_TEMP_VERSION_CONTENT)
- endif()
- if (NOT "${CEGUI_TEMP_VERSION_CONTENT}" STREQUAL "")
- get_preprocessor_entry(CEGUI_TEMP_VERSION_CONTENT CEGUI_VERSION_MAJOR CEGUI_VERSION_MAJOR)
- get_preprocessor_entry(CEGUI_TEMP_VERSION_CONTENT CEGUI_VERSION_MINOR CEGUI_VERSION_MINOR)
- get_preprocessor_entry(CEGUI_TEMP_VERSION_CONTENT CEGUI_VERSION_PATCH CEGUI_VERSION_PATCH)
- get_preprocessor_entry(CEGUI_TEMP_VERSION_CONTENT CEGUI_VERSION_NAME CEGUI_VERSION_NAME)
- set(CEGUI_VERSION "${CEGUI_VERSION_MAJOR}.${CEGUI_VERSION_MINOR}.${CEGUI_VERSION_PATCH}")
- pkg_message(CEGUI "Found CEGUI ${CEGUI_VERSION_NAME} (${CEGUI_VERSION})")
- else()
- message(SEND_ERROR "Can't found CEGUI version !")
- set(CEGUI_INCOMPATIBLE FALSE)
- endif()
- else ()
- set(CEGUI_INCOMPATIBLE FALSE)
- endif ()
- if ("${CEGUI_VERSION}" VERSION_GREATER "0.8.0")
- set(CEGUI_LIB_SUFFIX "-${CEGUI_VERSION_MAJOR}")
- endif ()
- set(CEGUI_LIBRARY_NAMES "CEGUIBase${CEGUI_LIB_SUFFIX}")
- get_debug_names(CEGUI_LIBRARY_NAMES)
- find_library(CEGUI_LIBRARY_REL NAMES ${CEGUI_LIBRARY_NAMES} HINTS ${CEGUI_LIB_SEARCH_PATH} ${CEGUI_PKGC_LIBRARY_DIRS} ${CEGUI_FRAMEWORK_SEARCH_PATH} PATH_SUFFIXES "" "release" "relwithdebinfo" "minsizerel")
- find_library(CEGUI_LIBRARY_DBG NAMES ${CEGUI_LIBRARY_NAMES_DBG} HINTS ${CEGUI_LIB_SEARCH_PATH} ${CEGUI_PKGC_LIBRARY_DIRS} ${CEGUI_FRAMEWORK_SEARCH_PATH} PATH_SUFFIXES "" "debug")
- make_library_set(CEGUI_LIBRARY)
- if (CEGUI_INCOMPATIBLE)
- set(CEGUI_LIBRARY "NOTFOUND")
- endif ()
- set(CEGUI_INCLUDE_DIR ${CEGUI_CONFIG_INCLUDE_DIR} ${CEGUI_INCLUDE_DIR})
- list(REMOVE_DUPLICATES CEGUI_INCLUDE_DIR)
- findpkg_finish(CEGUI)
- # Starting CEGUI 0.8, the headers are in the CEGUI subdirectory, and we must include
- # its parent rather than directly the subdirectory. Otherwise we'll get compiler errors.
- if ("${CEGUI_VERSION}" VERSION_GREATER "0.8.0")
- add_parent_dir(CEGUI_INCLUDE_DIRS_TEMP CEGUI_INCLUDE_DIR)
- # we basically overwrite CEGUI_INCLUDE_DIR so that it contains only the parent directory.
- set(CEGUI_INCLUDE_DIR ${CEGUI_INCLUDE_DIRS_TEMP})
- endif()
- set(CEGUI_INCLUDE_DIRS ${CEGUI_INCLUDE_DIR})
- mark_as_advanced(CEGUI_CONFIG_INCLUDE_DIR)
- if (NOT CEGUI_FOUND)
- return()
- endif ()
- get_filename_component(CEGUI_LIBRARY_DIR_REL "${CEGUI_LIBRARY_REL}" PATH)
- get_filename_component(CEGUI_LIBRARY_DIR_DBG "${CEGUI_LIBRARY_DBG}" PATH)
- set(CEGUI_LIBRARY_DIRS ${CEGUI_LIBRARY_DIR_REL} ${CEGUI_LIBRARY_DIR_DBG})
- # find binaries
- if (NOT CEGUI_STATIC)
- if (WIN32)
- find_file(CEGUI_BINARY_REL NAMES "CEGUIBase${CEGUI_LIB_SUFFIX}.dll" "CEGUIBase.dll" HINTS ${CEGUI_BIN_SEARCH_PATH} PATH_SUFFIXES "" "Release" "RelWithDebInfo" "MinSizeRel")
- find_file(CEGUI_BINARY_DBG NAMES "CEGUIBase${CEGUI_LIB_SUFFIX}_d.dll" "CEGUIBase_d.dll" HINTS ${CEGUI_BIN_SEARCH_PATH} PATH_SUFFIXES "" "Debug")
- endif()
- get_filename_component(CEGUI_BINARY_DIR_REL "${CEGUI_BINARY_REL}" PATH)
- get_filename_component(CEGUI_BINARY_DIR_DBG "${CEGUI_BINARY_DBG}" PATH)
- mark_as_advanced(CEGUI_BINARY_REL CEGUI_BINARY_DBG CEGUI_BINARY_DIR_REL CEGUI_BINARY_DIR_DBG)
- endif()
- if ("${CEGUI_VERSION}" VERSION_GREATER "0.8.0")
- # Base
- cegui_register_module(BASE CommonDialogs CommonDialogs/Module.h "")
- # WindowsRenderer
- cegui_register_module(WINDOWSRENDERER CoreWindowRendererSet WindowRendererSets/Core/Module.h "")
- # Renderer
- cegui_register_module(RENDERER Direct3D9Renderer RendererModules/Direct3D9/Renderer.h "")
- cegui_register_module(RENDERER Direct3D10Renderer RendererModules/Direct3D10/Renderer.h "")
- cegui_register_module(RENDERER Direct3D11Renderer RendererModules/Direct3D11/Renderer.h "")
- cegui_register_module(RENDERER DirectFBRenderer RendererModules/DirectFB/Renderer.h "")
- cegui_register_module(RENDERER IrrlichtRenderer RendererModules/Irrlicht/Renderer.h "IRRLICHT")
- cegui_register_module(RENDERER NullRenderer RendererModules/Null/Renderer.h "NULL")
- cegui_register_module(RENDERER OgreRenderer RendererModules/Ogre/Renderer.h "OGRE")
- cegui_register_module(RENDERER OpenGLRenderer RendererModules/OpenGL/GLRenderer.h "OPENGL")
- cegui_register_module(RENDERER OpenGL3Renderer RendererModules/OpenGL/GL3Renderer.h "OPENGL3")
- cegui_register_module(RENDERER OpenGLESRenderer RendererModules/OpenGLES/Renderer.h "")
- # ImageCodec
- cegui_register_module(IMAGECODEC CoronaImageCodec ImageCodecModules/Corona/ImageCodec.h "")
- cegui_register_module(IMAGECODEC DevILImageCodec ImageCodecModules/DevIL/ImageCodec.h "")
- cegui_register_module(IMAGECODEC FreeImageImageCodec ImageCodecModules/FreeImage/ImageCodec.h "")
- cegui_register_module(IMAGECODEC SILLYImageCodec ImageCodecModules/SILLY/ImageCodec.h "")
- cegui_register_module(IMAGECODEC STBImageCodec ImageCodecModules/STB/ImageCodec.h "")
- cegui_register_module(IMAGECODEC TGAImageCodec ImageCodecModules/TGA/ImageCodec.h "")
- cegui_register_module(IMAGECODEC PVRImageCodec ImageCodecModules/PVR/ImageCodec.h "")
- # Parser
- cegui_register_module(PARSER ExpatParser XMLParserModules/Expat/XMLParser.h "")
- cegui_register_module(PARSER LibXMLParser XMLParserModules/Libxml2/XMLParser.h "")
- cegui_register_module(PARSER RapidXMLParser XMLParserModules/RapidXML/XMLParser.h "")
- cegui_register_module(PARSER TinyXMLParser XMLParserModules/TinyXML/XMLParser.h "")
- cegui_register_module(PARSER XercesParser XMLParserModules/Xerces/XMLParser.h "")
- # Script
- cegui_register_module(SCRIPT LuaScriptModule ScriptModules/Lua/ScriptModule.h "LUA")
- else ()
- # WindowsRenderer
- cegui_register_module(WINDOWSRENDERER FalagardWRBase "WindowRendererSets/Falagard/FalModule.h;falagard/CEGUIFalNamedArea.h" "")
- # Renderer
- cegui_register_module(RENDERER Direct3D9Renderer RendererModules/Direct3D9/CEGUIDirect3D9Renderer.h "")
- cegui_register_module(RENDERER Direct3D10Renderer RendererModules/Direct3D10/CEGUIDirect3D10Renderer.h "")
- cegui_register_module(RENDERER Direct3D11Renderer RendererModules/Direct3D11/CEGUIDirect3D11Renderer.h "")
- cegui_register_module(RENDERER DirectFBRenderer RendererModules/DirectFB/CEGUIDirectFBRenderer.h "")
- cegui_register_module(RENDERER IrrlichtRenderer RendererModules/Irrlicht/CEGUIIrrlichtRenderer.h "")
- cegui_register_module(RENDERER NullRenderer RendererModules/Null/CEGUINullRenderer.h "NULL")
- cegui_register_module(RENDERER OgreRenderer RendererModules/Ogre/CEGUIOgreRenderer.h "OGRE")
- cegui_register_module(RENDERER OpenGLRenderer RendererModules/OpenGL/CEGUIOpenGLRenderer.h "OPENGL")
- # ImageCodec
- cegui_register_module(IMAGECODEC CoronaImageCodec ImageCodecModules/CoronaImageCodec/CEGUICoronaImageCodec.h "")
- cegui_register_module(IMAGECODEC DevILImageCodec ImageCodecModules/DevILImageCodec/CEGUIDevILImageCodec.h "")
- cegui_register_module(IMAGECODEC FreeImageImageCodec ImageCodecModules/FreeImageImageCodec/CEGUIFreeImageImageCodec.h "")
- cegui_register_module(IMAGECODEC SILLYImageCodec ImageCodecModules/SILLYImageCodec/CEGUISILLYImageCodec.h "")
- cegui_register_module(IMAGECODEC STBImageCodec ImageCodecModules/STBImageCodec/CEGUISTBImageCodec.h "")
- cegui_register_module(IMAGECODEC TGAImageCodec ImageCodecModules/TGAImageCodec/CEGUITGAImageCodec.h "")
- # Parser
- cegui_register_module(PARSER ExpatParser XMLParserModules/ExpatParser/CEGUIExpatParser.h "")
- cegui_register_module(PARSER LibxmlParser XMLParserModules/LibxmlParser/CEGUILibxmlParser.h "")
- cegui_register_module(PARSER RapidXMLParser XMLParserModules/RapidXMLParser/CEGUIRapidXMLParser.h "")
- cegui_register_module(PARSER TinyXMLParser XMLParserModules/TinyXMLParser/CEGUITinyXMLParser.h "")
- cegui_register_module(PARSER XercesParser XMLParserModules/XercesParser/CEGUIXercesParser.h "")
- # Script
- cegui_register_module(SCRIPT LuaScriptModule ScriptingModules/LuaScriptModule/CEGUILua.h "")
- if(WIN32)
- cegui_register_module(SCRIPT tolua++ ScriptingModules/LuaScriptModule/support/tolua++/tolua++.h "")
- set(CEGUI_SCRIPT_MODULES_tolua++_CHECKNOPREFIX TRUE)
- else()
- cegui_register_module(SCRIPT toluapp ScriptingModules/LuaScriptModule/support/tolua++/tolua++.h "")
- endif()
- endif ()
- # Register var to check change on modules
- set(CEGUI_RESET_MODULES_VARS "")
- foreach (comp ${CEGUI_MODULES})
- set(CEGUI_RESET_MODULES_VARS ${CEGUI_RESET_MODULES_VARS}
- CEGUI_${comp}_INCLUDE_DIR CEGUI_${comp}_LIBRARY_FWK
- CEGUI_${comp}_LIBRARY_DBG CEGUI_${comp}_LIBRARY_REL
- )
- endforeach (comp)
- set(CEGUI_PREFIX_MODULES_WATCH ${CEGUI_PREFIX_MODULES_PATH})
- clear_if_changed(CEGUI_PREFIX_WATCH ${CEGUI_RESET_MODULES_VARS})
- # Find modules
- cegui_find_modules(BASE)
- cegui_find_modules(WINDOWSRENDERER)
- cegui_find_modules(RENDERER)
- cegui_find_modules(IMAGECODEC)
- cegui_find_modules(PARSER)
- cegui_find_modules(SCRIPT)
- # Find modules
- if (CEGUI_STATIC)
- set(CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_FIND_LIBRARY_SUFFIXES_OLD}")
- endif()
- #Check change on modules
- clear_if_changed(CEGUI_PREFIX_WATCH)
- clear_if_changed(CEGUI_PREFIX_MODULES_WATCH)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement