mirror of
https://github.com/OpenMW/openmw.git
synced 2025-03-03 20:09:40 +00:00
Fixed OS X build with static MyGUI
This commit is contained in:
parent
b5d12d0723
commit
1b5d327f7e
2 changed files with 121 additions and 34 deletions
69
cmake/FindFreetype.cmake
Normal file
69
cmake/FindFreetype.cmake
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
# This file is part of the CMake build system for OGRE
|
||||||
|
# (Object-oriented Graphics Rendering Engine)
|
||||||
|
# For the latest info, see http://www.ogre3d.org/
|
||||||
|
#
|
||||||
|
# The contents of this file are placed in the public domain. Feel
|
||||||
|
# free to make use of it in any way you like.
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
# - Try to find FreeType
|
||||||
|
# Once done, this will define
|
||||||
|
#
|
||||||
|
# FREETYPE_FOUND - system has FreeType
|
||||||
|
# FREETYPE_INCLUDE_DIRS - the FreeType include directories
|
||||||
|
# FREETYPE_LIBRARIES - link these to use FreeType
|
||||||
|
|
||||||
|
include(FindPkgMacros)
|
||||||
|
findpkg_begin(FREETYPE)
|
||||||
|
|
||||||
|
# Get path, convert backslashes as ${ENV_${var}}
|
||||||
|
getenv_path(FREETYPE_HOME)
|
||||||
|
|
||||||
|
# construct search paths
|
||||||
|
set(FREETYPE_PREFIX_PATH ${FREETYPE_HOME} ${ENV_FREETYPE_HOME})
|
||||||
|
create_search_paths(FREETYPE)
|
||||||
|
# redo search if prefix path changed
|
||||||
|
clear_if_changed(FREETYPE_PREFIX_PATH
|
||||||
|
FREETYPE_LIBRARY_FWK
|
||||||
|
FREETYPE_LIBRARY_REL
|
||||||
|
FREETYPE_LIBRARY_DBG
|
||||||
|
FREETYPE_INCLUDE_DIR
|
||||||
|
)
|
||||||
|
|
||||||
|
set(FREETYPE_LIBRARY_NAMES freetype2311 freetype239 freetype238 freetype235 freetype219 freetype)
|
||||||
|
get_debug_names(FREETYPE_LIBRARY_NAMES)
|
||||||
|
|
||||||
|
use_pkgconfig(FREETYPE_PKGC freetype2)
|
||||||
|
|
||||||
|
# prefer static library over framework
|
||||||
|
set(CMAKE_FIND_FRAMEWORK "LAST")
|
||||||
|
|
||||||
|
message(STATUS "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
|
||||||
|
findpkg_framework(FREETYPE)
|
||||||
|
message(STATUS "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
|
||||||
|
|
||||||
|
find_path(FREETYPE_INCLUDE_DIR NAMES freetype/freetype.h HINTS ${FREETYPE_INC_SEARCH_PATH} ${FREETYPE_PKGC_INCLUDE_DIRS} PATH_SUFFIXES freetype2)
|
||||||
|
find_path(FREETYPE_FT2BUILD_INCLUDE_DIR NAMES ft2build.h HINTS ${FREETYPE_INC_SEARCH_PATH} ${FREETYPE_PKGC_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
if (SYMBIAN)
|
||||||
|
set(ORIGINAL_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
|
||||||
|
set(CMAKE_PREFIX_PATH ${CMAKE_SYSYEM_OUT_DIR})
|
||||||
|
message(STATUS "Lib will be searched in Symbian out dir: ${CMAKE_SYSYEM_OUT_DIR}")
|
||||||
|
endif (SYMBIAN)
|
||||||
|
find_library(FREETYPE_LIBRARY_REL NAMES ${FREETYPE_LIBRARY_NAMES} HINTS ${FREETYPE_LIB_SEARCH_PATH} ${FREETYPE_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel)
|
||||||
|
find_library(FREETYPE_LIBRARY_DBG NAMES ${FREETYPE_LIBRARY_NAMES_DBG} HINTS ${FREETYPE_LIB_SEARCH_PATH} ${FREETYPE_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug)
|
||||||
|
if (SYMBIAN)
|
||||||
|
set(CMAKE_PREFIX_PATH ${ORIGINAL_CMAKE_PREFIX_PATH})
|
||||||
|
endif (SYMBIAN)
|
||||||
|
|
||||||
|
make_library_set(FREETYPE_LIBRARY)
|
||||||
|
|
||||||
|
findpkg_finish(FREETYPE)
|
||||||
|
mark_as_advanced(FREETYPE_FT2BUILD_INCLUDE_DIR)
|
||||||
|
if (NOT FREETYPE_FT2BUILD_INCLUDE_DIR STREQUAL FREETYPE_INCLUDE_DIR)
|
||||||
|
set(FREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS} ${FREETYPE_FT2BUILD_INCLUDE_DIR})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# Reset framework finding
|
||||||
|
set(CMAKE_FIND_FRAMEWORK "FIRST")
|
|
@ -83,6 +83,8 @@ ELSE (WIN32) #Unix
|
||||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR)
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR)
|
||||||
FIND_PACKAGE(PkgConfig)
|
FIND_PACKAGE(PkgConfig)
|
||||||
IF(MYGUI_STATIC)
|
IF(MYGUI_STATIC)
|
||||||
|
# don't use pkgconfig on OS X, find freetype & append it's libs to resulting MYGUI_LIBRARIES
|
||||||
|
IF (NOT APPLE)
|
||||||
PKG_SEARCH_MODULE(MYGUI MYGUIStatic MyGUIStatic)
|
PKG_SEARCH_MODULE(MYGUI MYGUIStatic MyGUIStatic)
|
||||||
IF (MYGUI_INCLUDE_DIRS)
|
IF (MYGUI_INCLUDE_DIRS)
|
||||||
SET(MYGUI_INCLUDE_DIRS ${MYGUI_INCLUDE_DIRS})
|
SET(MYGUI_INCLUDE_DIRS ${MYGUI_INCLUDE_DIRS})
|
||||||
|
@ -97,6 +99,16 @@ ELSE (WIN32) #Unix
|
||||||
STRING(REGEX REPLACE "(.*)/.*" "\\1" MYGUI_LIB_DIR "${MYGUI_LIB_DIR}")
|
STRING(REGEX REPLACE "(.*)/.*" "\\1" MYGUI_LIB_DIR "${MYGUI_LIB_DIR}")
|
||||||
STRING(REGEX REPLACE ".*/" "" MYGUI_LIBRARIES "${MYGUI_LIBRARIES}")
|
STRING(REGEX REPLACE ".*/" "" MYGUI_LIBRARIES "${MYGUI_LIBRARIES}")
|
||||||
ENDIF (MYGUI_INCLUDE_DIRS)
|
ENDIF (MYGUI_INCLUDE_DIRS)
|
||||||
|
ELSE (NOT APPLE)
|
||||||
|
SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${MYGUI_DEPENDENCIES_DIR} ${OGRE_DEPENDENCIES_DIR})
|
||||||
|
FIND_PACKAGE(freetype)
|
||||||
|
FIND_PATH(MYGUI_INCLUDE_DIRS MyGUI.h PATHS /usr/local/include /usr/include PATH_SUFFIXES MyGUI MYGUI)
|
||||||
|
FIND_LIBRARY(MYGUI_LIBRARIES MyGUIEngineStatic PATHS /usr/lib /usr/local/lib)
|
||||||
|
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
|
||||||
|
SET(MYGUI_LIB_DIR ${MYGUI_LIBRARIES})
|
||||||
|
STRING(REGEX REPLACE "(.*)/.*" "\\1" MYGUI_LIB_DIR "${MYGUI_LIB_DIR}")
|
||||||
|
STRING(REGEX REPLACE ".*/" "" MYGUI_LIBRARIES "${MYGUI_LIBRARIES}")
|
||||||
|
ENDIF (NOT APPLE)
|
||||||
ELSE(MYGUI_STATIC)
|
ELSE(MYGUI_STATIC)
|
||||||
PKG_SEARCH_MODULE(MYGUI MYGUI MyGUI)
|
PKG_SEARCH_MODULE(MYGUI MYGUI MyGUI)
|
||||||
IF (MYGUI_INCLUDE_DIRS)
|
IF (MYGUI_INCLUDE_DIRS)
|
||||||
|
@ -120,17 +132,23 @@ SEPARATE_ARGUMENTS(MYGUI_INCLUDE_DIRS)
|
||||||
SEPARATE_ARGUMENTS(MYGUI_LIBRARIES)
|
SEPARATE_ARGUMENTS(MYGUI_LIBRARIES)
|
||||||
SEPARATE_ARGUMENTS(MYGUI_PLATFORM_LIBRARIES)
|
SEPARATE_ARGUMENTS(MYGUI_PLATFORM_LIBRARIES)
|
||||||
|
|
||||||
|
SET(MYGUI_LIBRARIES ${MYGUI_LIBRARIES} ${FREETYPE_LIBRARIES})
|
||||||
|
|
||||||
SET(MYGUI_INCLUDE_DIRS ${MYGUI_INCLUDE_DIRS} CACHE PATH "")
|
SET(MYGUI_INCLUDE_DIRS ${MYGUI_INCLUDE_DIRS} CACHE PATH "")
|
||||||
SET(MYGUI_LIBRARIES ${MYGUI_LIBRARIES} CACHE STRING "")
|
SET(MYGUI_LIBRARIES ${MYGUI_LIBRARIES} CACHE STRING "")
|
||||||
SET(MYGUI_PLATFORM_LIBRARIES ${MYGUI_PLATFORM_LIBRARIES} CACHE STRING "")
|
SET(MYGUI_PLATFORM_LIBRARIES ${MYGUI_PLATFORM_LIBRARIES} CACHE STRING "")
|
||||||
SET(MYGUI_LIB_DIR ${MYGUI_LIB_DIR} CACHE PATH "")
|
SET(MYGUI_LIB_DIR ${MYGUI_LIB_DIR} CACHE PATH "")
|
||||||
|
|
||||||
IF (MYGUI_INCLUDE_DIRS AND MYGUI_LIBRARIES)
|
IF (NOT APPLE OR NOT MYGUI_STATIC) # we need freetype libs only on OS X for static build, for other cases just make it TRUE
|
||||||
|
SET(FREETYPE_LIBRARIES TRUE)
|
||||||
|
ENDIF (NOT APPLE OR NOT MYGUI_STATIC)
|
||||||
|
|
||||||
|
IF (MYGUI_INCLUDE_DIRS AND MYGUI_LIBRARIES AND FREETYPE_LIBRARIES)
|
||||||
SET(MYGUI_FOUND TRUE)
|
SET(MYGUI_FOUND TRUE)
|
||||||
ENDIF (MYGUI_INCLUDE_DIRS AND MYGUI_LIBRARIES)
|
ENDIF (MYGUI_INCLUDE_DIRS AND MYGUI_LIBRARIES AND FREETYPE_LIBRARIES)
|
||||||
|
|
||||||
IF (MYGUI_FOUND)
|
IF (MYGUI_FOUND)
|
||||||
MARK_AS_ADVANCED(MYGUI_LIB_DIR)
|
MARK_AS_ADVANCED(MYGUI_LIB_DIR)
|
||||||
IF (NOT MYGUI_FIND_QUIETLY)
|
IF (NOT MYGUI_FIND_QUIETLY)
|
||||||
MESSAGE(STATUS " libraries : ${MYGUI_LIBRARIES} from ${MYGUI_LIB_DIR}")
|
MESSAGE(STATUS " libraries : ${MYGUI_LIBRARIES} from ${MYGUI_LIB_DIR}")
|
||||||
MESSAGE(STATUS " includes : ${MYGUI_INCLUDE_DIRS}")
|
MESSAGE(STATUS " includes : ${MYGUI_INCLUDE_DIRS}")
|
||||||
|
|
Loading…
Reference in a new issue