diff options
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/meson.build')
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/meson.build | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/meson.build b/Build/source/libs/harfbuzz/harfbuzz-src/meson.build index d8d8424e7b9..ee064a00e2e 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/meson.build +++ b/Build/source/libs/harfbuzz/harfbuzz-src/meson.build @@ -1,6 +1,6 @@ project('harfbuzz', 'c', 'cpp', meson_version: '>= 0.55.0', - version: '8.5.0', + version: '10.0.1', default_options: [ 'cpp_eh=none', # Just to support msvc, we are passing -fno-exceptions also anyway # 'cpp_rtti=false', # Do NOT enable, wraps inherit it and ICU needs RTTI @@ -14,7 +14,9 @@ cairo_min_version = '>= 1.10.0' chafa_min_version = '>= 1.6.0' icu_min_version = '>= 49.0' graphite2_min_version = '>= 1.2.0' -freetype_min_version = '>= 12.0.6' + +freetype_min_version_actual = '>= 2.4.2' +freetype_min_version = '>= 12.0.6' # Corresponds to `freetype_min_version_actual` hb_version_arr = meson.project_version().split('.') hb_version_major = hb_version_arr[0].to_int() @@ -101,12 +103,21 @@ check_funcs = [ m_dep = cpp.find_library('m', required: false) if meson.version().version_compare('>=0.60.0') + # Sadly, FreeType's versioning schemes are different between pkg-config and CMake # pkg-config: freetype2, cmake: Freetype - freetype_dep = dependency('freetype2', 'Freetype', + freetype_dep = dependency('freetype2', version: freetype_min_version, - required: get_option('freetype'), - default_options: ['harfbuzz=disabled'], - allow_fallback: true) + method: 'pkg-config', + required: false, + allow_fallback: false) + if not freetype_dep.found() + freetype_dep = dependency('FreeType', + version: freetype_min_version_actual, + method: 'cmake', + required: get_option('freetype'), + default_options: ['harfbuzz=disabled'], + allow_fallback: true) + endif else # painful hack to handle multiple dependencies but also respect options freetype_opt = get_option('freetype') @@ -119,7 +130,7 @@ else # when disabled, leave it not-found if not freetype_dep.found() and not get_option('freetype').disabled() # Try cmake name - freetype_dep = dependency('Freetype', version: freetype_min_version, method: 'cmake', required: false) + freetype_dep = dependency('Freetype', version: freetype_min_version_actual, method: 'cmake', required: false) # Subproject fallback, `allow_fallback: true` means the fallback will be # tried even if the freetype option is set to `auto`. if not freetype_dep.found() @@ -174,6 +185,11 @@ else endif endif +if icu_dep.found() and icu_dep.version().version_compare('>=75.1') and (get_option('cpp_std') == 'c++11' or get_option('cpp_std') == 'c++14') + cpp17_arg = cpp.get_argument_syntax() == 'msvc' ? '/std:c++17' : '-std=c++17' + add_project_arguments(cpp17_arg, language: 'cpp') +endif + if icu_dep.found() and icu_dep.type_name() == 'pkgconfig' icu_defs = icu_dep.get_variable(pkgconfig: 'DEFS', default_value: '').split() if icu_defs.length() > 0 |