diff --git a/cmake/Modules/FindFreetype.cmake b/cmake/Modules/FindFreetype.cmake index 76d85721c..50ee27352 100644 --- a/cmake/Modules/FindFreetype.cmake +++ b/cmake/Modules/FindFreetype.cmake @@ -1,16 +1,12 @@ # Once done these will be defined: # -# LIBFREETYPE_FOUND -# LIBFREETYPE_INCLUDE_DIRS -# LIBFREETYPE_LIBRARIES -# -# For use in OBS: -# -# FREETYPE_INCLUDE_DIR +# FREETYPE_FOUND +# FREETYPE_INCLUDE_DIRS +# FREETYPE_LIBRARIES # -if(LIBFREETYPE_INCLUDE_DIRS AND LIBFREETYPE_LIBRARIES) - set(LIBFREETYPE_FOUND TRUE) +if(FREETYPE_INCLUDE_DIRS AND FREETYPE_LIBRARIES) + set(FREETYPE_FOUND TRUE) else() find_package(PkgConfig QUIET) if (PKG_CONFIG_FOUND) @@ -23,38 +19,62 @@ else() set(_lib_suffix 32) endif() - set(FREETYPE_PATH_ARCH FreetypePath${_lib_suffix}) + find_path(FREETYPE_INCLUDE_DIR_ft2build + NAMES + ft2build.h + HINTS + ${_FREETYPE_INCLUDE_DIRS} + "${CMAKE_SOURCE_DIR}/additional_install_files/include" + "$ENV{obsAdditionalInstallFiles}/include" + ENV FreetypePath${_lib_suffix} + ENV FreetypePath + ENV FREETYPE_DIR + PATHS + /usr/include /usr/local/include /opt/local/include /sw/include + PATH_SUFFIXES + include/freetype2 include) - if (NOT _FREETYPE_INCLUDE_DIRS STREQUAL "") - set (FREETYPE_INCLUDE_DIR ${_FREETYPE_INCLUDE_DIRS}) - else() - find_path(FREETYPE_INCLUDE_DIR - NAMES ft2build.h - HINTS - ${_FREETYPE_INCLUDE_DIRS} - "${CMAKE_SOURCE_DIR}/additional_install_files/include" - "$ENV{obsAdditionalInstallFiles}/include" - ENV FreetypePath - ENV ${FREETYPE_PATH_ARCH} - PATHS - /usr/include /usr/local/include /opt/local/include /sw/include) - endif() + find_path(FREETYPE_INCLUDE_DIR_freetype2 + NAMES + freetype/config/ftheader.h + config/ftheader.h + HINTS + ${_FREETYPE_INCLUDE_DIRS} + "${CMAKE_SOURCE_DIR}/additional_install_files/include" + "$ENV{obsAdditionalInstallFiles}/include" + ENV FreetypePath${_lib_suffix} + ENV FreetypePath + ENV FREETYPE_DIR + PATHS + /usr/include /usr/local/include /opt/local/include /sw/include + PATH_SUFFIXES + include/freetype2 include) find_library(FREETYPE_LIB NAMES ${_FREETYPE_LIBRARIES} freetype libfreetype HINTS ${_FREETYPE_LIBRARY_DIRS} - "${FREETYPE_INCLUDE_DIR}/../lib" - "${FREETYPE_INCLUDE_DIR}/../lib${_lib_suffix}" - "${FREETYPE_INCLUDE_DIR}/../libs${_lib_suffix}" - "${FREETYPE_INCLUDE_DIR}/lib" - "${FREETYPE_INCLUDE_DIR}/lib${_lib_suffix}" + "${FREETYPE_INCLUDE_DIR_ft2build}/../lib" + "${FREETYPE_INCLUDE_DIR_ft2build}/../lib${_lib_suffix}" + "${FREETYPE_INCLUDE_DIR_ft2build}/../libs${_lib_suffix}" + "${FREETYPE_INCLUDE_DIR_ft2build}/lib" + "${FREETYPE_INCLUDE_DIR_ft2build}/lib${_lib_suffix}" + ENV FREETYPE_DIR PATHS - /usr/lib /usr/local/lib /opt/local/lib /sw/lib) + /usr/lib /usr/local/lib /opt/local/lib /sw/lib + PATH_SUFFIXES + lib${_lib_suffix} lib) - set(LIBFREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR} CACHE PATH "freetype include dir") - set(LIBFREETYPE_LIBRARIES ${FREETYPE_LIB} CACHE STRING "freetype libraries") + if(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2) + set(FREETYPE_INCLUDE_DIR "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype2}") + list(REMOVE_DUPLICATES FREETYPE_INCLUDE_DIR) + else() + unset(FREETYPE_INCLUDE_DIR) + endif() - find_package_handle_standard_args(Libfreetype DEFAULT_MSG FREETYPE_LIB FREETYPE_INCLUDE_DIR) - mark_as_advanced(FREETYPE_INCLUDE_DIR FREETYPE_LIB) + set(FREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR} CACHE PATH "freetype include dirs") + set(FREETYPE_LIBRARIES ${FREETYPE_LIB} CACHE STRING "freetype libraries") + + find_package_handle_standard_args(Freetype DEFAULT_MSG FREETYPE_LIB FREETYPE_INCLUDE_DIR_ft2build FREETYPE_INCLUDE_DIR_freetype2) + mark_as_advanced(FREETYPE_INCLUDE_DIR FREETYPE_INCLUDE_DIR_ft2build FREETYPE_INCLUDE_DIR_freetype2 FREETYPE_LIB) endif() diff --git a/plugins/text-freetype2/CMakeLists.txt b/plugins/text-freetype2/CMakeLists.txt index b6c807b39..247a1d512 100644 --- a/plugins/text-freetype2/CMakeLists.txt +++ b/plugins/text-freetype2/CMakeLists.txt @@ -1,7 +1,7 @@ project(text-freetype2) find_package(Freetype QUIET) -if(NOT LIBFREETYPE_FOUND) +if(NOT FREETYPE_FOUND) message(STATUS "Freetype library not found, Freetype text plugin disabled") return() endif() @@ -47,8 +47,7 @@ else() include_directories(${ICONV_INCLUDE_DIR}) endif() -include_directories(${LIBFREETYPE_INCLUDE_DIRS}) -add_definitions(${LIBFREETYPE_DEFINITIONS}) +include_directories(${FREETYPE_INCLUDE_DIRS}) set(text-freetype2_SOURCES find-font.h @@ -65,7 +64,7 @@ add_library(text-freetype2 MODULE target_link_libraries(text-freetype2 libobs ${text-freetype2_PLATFORM_DEPS} - ${LIBFREETYPE_LIBRARIES}) + ${FREETYPE_LIBRARIES}) if(UNIX AND ICONV_FOUND) target_link_libraries(text-freetype2 ${ICONV_LIBRARIES})