FindFreetype: support version selection
This commit is contained in:
parent
d03606a19c
commit
f58cce031e
|
@ -3,6 +3,7 @@
|
||||||
# FREETYPE_LIBRARIES, the library to link against
|
# FREETYPE_LIBRARIES, the library to link against
|
||||||
# FREETYPE_FOUND, if false, do not try to link to FREETYPE
|
# FREETYPE_FOUND, if false, do not try to link to FREETYPE
|
||||||
# FREETYPE_INCLUDE_DIRS, where to find headers.
|
# FREETYPE_INCLUDE_DIRS, where to find headers.
|
||||||
|
# FREETYPE_VERSION_STRING, the version of freetype found (since CMake 2.8.8)
|
||||||
# This is the concatenation of the paths:
|
# This is the concatenation of the paths:
|
||||||
# FREETYPE_INCLUDE_DIR_ft2build
|
# FREETYPE_INCLUDE_DIR_ft2build
|
||||||
# FREETYPE_INCLUDE_DIR_freetype2
|
# FREETYPE_INCLUDE_DIR_freetype2
|
||||||
|
@ -77,10 +78,33 @@ IF(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
|
||||||
ENDIF(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
|
ENDIF(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
|
||||||
SET(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}")
|
SET(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}")
|
||||||
|
|
||||||
|
IF(FREETYPE_INCLUDE_DIR_freetype2 AND EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h")
|
||||||
|
FILE(STRINGS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h" freetype_version_str
|
||||||
|
REGEX "^#[\t ]*define[\t ]+FREETYPE_(MAJOR|MINOR|PATCH)[\t ]+[0-9]+$")
|
||||||
|
|
||||||
|
UNSET(FREETYPE_VERSION_STRING)
|
||||||
|
FOREACH(VPART MAJOR MINOR PATCH)
|
||||||
|
FOREACH(VLINE ${freetype_version_str})
|
||||||
|
IF(VLINE MATCHES "^#[\t ]*define[\t ]+FREETYPE_${VPART}")
|
||||||
|
STRING(REGEX REPLACE "^#[\t ]*define[\t ]+FREETYPE_${VPART}[\t ]+([0-9]+)$" "\\1"
|
||||||
|
FREETYPE_VERSION_PART "${VLINE}")
|
||||||
|
IF(FREETYPE_VERSION_STRING)
|
||||||
|
SET(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_STRING}.${FREETYPE_VERSION_PART}")
|
||||||
|
ELSE(FREETYPE_VERSION_STRING)
|
||||||
|
SET(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_PART}")
|
||||||
|
ENDIF(FREETYPE_VERSION_STRING)
|
||||||
|
UNSET(FREETYPE_VERSION_PART)
|
||||||
|
ENDIF()
|
||||||
|
ENDFOREACH(VLINE)
|
||||||
|
ENDFOREACH(VPART)
|
||||||
|
ENDIF(FREETYPE_INCLUDE_DIR_freetype2 AND EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h")
|
||||||
|
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and set FREETYPE_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set FREETYPE_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Freetype DEFAULT_MSG FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Freetype
|
||||||
|
REQUIRED_VARS FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS
|
||||||
|
VERSION_VAR FREETYPE_VERSION_STRING)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR_freetype2 FREETYPE_INCLUDE_DIR_ft2build)
|
MARK_AS_ADVANCED(FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR_freetype2 FREETYPE_INCLUDE_DIR_ft2build)
|
||||||
|
|
Loading…
Reference in New Issue