diff options
author | hasufell <hasufell@posteo.de> | 2013-12-08 21:05:25 +0100 |
---|---|---|
committer | Ilya Zhuravlev <zhuravlevilya@ya.ru> | 2014-01-05 20:58:40 +0400 |
commit | cb7bb736c70afa7e7dfc90545ad52992a35dc082 (patch) | |
tree | 75af1664713d53193bea02f670c1e8fa3505a4c7 | |
parent | 160e2b7b7d1edc7630db0eb0ebbd796a66aab89a (diff) | |
download | minetest-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.
-rw-r--r-- | src/CMakeLists.txt | 20 | ||||
-rw-r--r-- | src/cguittfont/CMakeLists.txt | 32 |
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 + ) |