Skip to content

Commit

Permalink
BUILD: prefer pkg-config for freetype2 detection
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
hasufell authored and Ilya Zhuravlev committed Jan 5, 2014
1 parent 160e2b7 commit cb7bb73
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 11 deletions.
20 changes: 19 additions & 1 deletion src/CMakeLists.txt
Expand Up @@ -178,7 +178,19 @@ if(ENABLE_GLES)
endif(ENABLE_GLES)

if(USE_FREETYPE)
find_package(Freetype REQUIRED)
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)
Expand Down Expand Up @@ -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}
Expand Down
32 changes: 22 additions & 10 deletions src/cguittfont/CMakeLists.txt
@@ -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
)
cguittfont
${IRRLICHT_LIBRARY}
${FREETYPE_LIBRARY}
${ZLIB_LIBRARIES} # needed by freetype, repeated here for safety
)

0 comments on commit cb7bb73

Please sign in to comment.