CMake: Check if freetype is compiled with brotli support

Because of the recent changes to our core fonts,
Freetype has to support Woff2 fonts or Blender will segfault on startup.

This adds an explicit check for this to inform people compiling Blender
about this requirement.
This commit is contained in:
Sebastian Parborg 2022-08-02 14:48:05 +02:00
parent 25a0124bc8
commit 0830320a7c
Notes: blender-bot 2023-07-17 13:11:08 +02:00
Referenced by issue #105992, Building: Unix CMake Looks for Brotli Config in Wrong File
1 changed files with 14 additions and 0 deletions

View File

@ -96,6 +96,18 @@ find_package_wrapper(PNG REQUIRED)
find_package_wrapper(ZLIB REQUIRED)
find_package_wrapper(Zstd REQUIRED)
function(check_freetype_for_brotli)
include(CheckSymbolExists)
set(CMAKE_REQUIRED_INCLUDES ${FREETYPE_INCLUDE_DIRS})
check_symbol_exists(FT_CONFIG_OPTION_USE_BROTLI
"freetype/config/ftconfig.h" HAVE_BROTLI)
if(NOT HAVE_BROTLI)
unset(HAVE_BROTLI CACHE)
message(FATAL_ERROR "Freetype needs to be compiled with brotli support!")
endif()
unset(HAVE_BROTLI CACHE)
endfunction()
if(NOT WITH_SYSTEM_FREETYPE)
# FreeType compiled with Brotli compression for woff2.
find_package_wrapper(Freetype REQUIRED)
@ -110,6 +122,7 @@ if(NOT WITH_SYSTEM_FREETYPE)
# ${BROTLI_LIBRARIES}
# )
endif()
check_freetype_for_brotli()
endif()
if(WITH_PYTHON)
@ -587,6 +600,7 @@ if(WITH_SYSTEM_FREETYPE)
if(NOT FREETYPE_FOUND)
message(FATAL_ERROR "Failed finding system FreeType version!")
endif()
check_freetype_for_brotli()
endif()
if(WITH_LZO AND WITH_SYSTEM_LZO)