aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhasufell <hasufell@posteo.de>2013-12-08 21:05:25 +0100
committerIlya Zhuravlev <zhuravlevilya@ya.ru>2014-01-05 20:58:40 +0400
commitcb7bb736c70afa7e7dfc90545ad52992a35dc082 (patch)
tree75af1664713d53193bea02f670c1e8fa3505a4c7 /src
parent160e2b7b7d1edc7630db0eb0ebbd796a66aab89a (diff)
downloadminetest-cb7bb736c70afa7e7dfc90545ad52992a35dc082.tar.gz
minetest-cb7bb736c70afa7e7dfc90545ad52992a35dc082.tar.bz2
minetest-cb7bb736c70afa7e7dfc90545ad52992a35dc082.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt20
-rw-r--r--src/cguittfont/CMakeLists.txt32
2 files changed, 41 insertions, 11 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6418b3b26..f2c1e166a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -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)
@@ -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}
diff --git a/src/cguittfont/CMakeLists.txt b/src/cguittfont/CMakeLists.txt
index 94d061462..d2647ba69 100644
--- a/src/cguittfont/CMakeLists.txt
+++ b/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
+ )