BUILD: prefer pkg-config for freetype2 detection

This can solve numerous problems such as:
http://www.cmake.org/Bug/view.php?id=13959
http://www.cmake.org/Bug/view.php?id=14601

If pkg-config or freetype2.pc is not found, then fall back to the
FindFreetype.cmake module logic.

Restrict to UNIX since I only tested it here.
This commit is contained in:
hasufell 2013-12-08 21:05:25 +01:00 committed by Ilya Zhuravlev
parent 160e2b7b7d
commit cb7bb736c7
2 changed files with 41 additions and 11 deletions

View File

@ -178,7 +178,19 @@ if(ENABLE_GLES)
endif(ENABLE_GLES)
if(USE_FREETYPE)
if(UNIX)
include(FindPkgConfig)
if(PKG_CONFIG_FOUND)
pkg_check_modules(FREETYPE QUIET freetype2)
if(FREETYPE_FOUND)
SET(FREETYPE_PKGCONFIG_FOUND TRUE)
SET(FREETYPE_LIBRARY ${FREETYPE_LIBRARIES})
endif(FREETYPE_FOUND)
endif(PKG_CONFIG_FOUND)
endif(UNIX)
if(NOT FREETYPE_FOUND)
find_package(Freetype REQUIRED)
endif(NOT FREETYPE_FOUND)
set(CGUITTFONT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cguittfont")
set(CGUITTFONT_LIBRARY cguittfont)
endif(USE_FREETYPE)
@ -451,6 +463,12 @@ if(BUILD_CLIENT)
)
endif(USE_CURL)
if(USE_FREETYPE)
if(FREETYPE_PKGCONFIG_FOUND)
set_target_properties(${PROJECT_NAME}
PROPERTIES
COMPILE_FLAGS "${FREETYPE_CFLAGS}"
)
endif(FREETYPE_PKGCONFIG_FOUND)
target_link_libraries(
${PROJECT_NAME}
${FREETYPE_LIBRARY}

View File

@ -1,17 +1,29 @@
include_directories(
${IRRLICHT_INCLUDE_DIR}
${FREETYPE_INCLUDE_DIRS}
)
# CGUITTFont authors, y u no include headers you use?
# Do not add CGUITTFont.cpp to the line below.
# xCGUITTFont.cpp is a wrapper file that includes
# additional required headers.
add_library(cguittfont xCGUITTFont.cpp)
if(FREETYPE_PKGCONFIG_FOUND)
set_target_properties(cguittfont
PROPERTIES
COMPILE_FLAGS "${FREETYPE_CFLAGS}"
LINK_FLAGS "${FREETYPE_LDFLAGS}"
)
include_directories(
${IRRLICHT_INCLUDE_DIR}
)
else(FREETYPE_PKGCONFIG_FOUND)
include_directories(
${IRRLICHT_INCLUDE_DIR}
${FREETYPE_INCLUDE_DIRS}
)
endif(FREETYPE_PKGCONFIG_FOUND)
target_link_libraries(
cguittfont
${IRRLICHT_LIBRARY}
${FREETYPE_LIBRARY}
${ZLIB_LIBRARIES} # needed by freetype, repeated here for safety
)
)