summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2022-02-22 04:21:43 +0000
committerMatthias Clasen <mclasen@redhat.com>2022-02-22 04:21:43 +0000
commit78be016d0bd59d4c6bea07311ccdfb6f1b66efa0 (patch)
tree9fb8bada2460ca17e01295cac64eb79e4ec60d9e
parent6aec701eeb49d6f583c4c1f060d0a72d61ec95e6 (diff)
parentafdf144ae84fd67ad773799a93407214e5cc2261 (diff)
downloadpango-78be016d0bd59d4c6bea07311ccdfb6f1b66efa0.tar.gz
Merge branch 'meson-msvc-cleanup' into 'main'
Meson: Clean up on Visual Studio builds See merge request GNOME/pango!595
-rw-r--r--meson.build69
-rw-r--r--pango/meson.build16
2 files changed, 18 insertions, 67 deletions
diff --git a/meson.build b/meson.build
index fcff9ea7..35464c2a 100644
--- a/meson.build
+++ b/meson.build
@@ -268,40 +268,14 @@ endif
# pkg-config files for them
cairo_pc = ''
cairo_lib = ''
-harfbuzz_pc=''
freetype2_pc=''
fontconfig_pc=''
-harfbuzz_lib=''
-fontconfig_lib=''
-harfbuzz_dep = dependency('harfbuzz', version: harfbuzz_req_version, required: false)
-if harfbuzz_dep.found()
- harfbuzz_pc = 'harfbuzz'
-else
- if cc.get_id() == 'msvc' and cc.has_header('hb.h')
- # The CMake build files for HarfBuzz (which is used for MSVC builds) do not
- # generate pkg-config files, so look for harfbuzz.lib. Ensure that we
- # we look for HarfBuzz 2.0.0 or later.
- harfbuzz_lib = cc.find_library('harfbuzz', required: false)
- if harfbuzz_lib.found()
- if cc.has_function('hb_ot_tags_from_script_and_language', dependencies: harfbuzz_lib)
- harfbuzz_dep = harfbuzz_lib
- endif
- endif
- endif
-endif
-
-# Remove when Meson acquires ability to declare deps declaratively, or
-# when finding dependencies via CMake files is fixed.
-if not harfbuzz_dep.found()
- harfbuzz_dep = dependency('harfbuzz', version: harfbuzz_req_version,
- fallback: ['harfbuzz', 'libharfbuzz_dep'],
- default_options: ['coretext=enabled'])
-endif
-
-if not harfbuzz_dep.found()
- error('harfbuzz not found')
-endif
+harfbuzz_dep = dependency('harfbuzz',
+ version: harfbuzz_req_version,
+ required: true,
+ fallback: ['harfbuzz', 'libharfbuzz_dep'],
+ default_options: ['coretext=enabled'])
pango_deps += harfbuzz_dep
@@ -322,9 +296,6 @@ else
# Look for the Visual Studio-style import library if FontConfig's .pc file cannot be
# found on Visual Studio
fontconfig_dep = cc.find_library('fontconfig', required: fontconfig_option)
- if fontconfig_dep.found()
- fontconfig_lib = '-lfontconfig'
- endif
endif
endif
@@ -365,29 +336,17 @@ if not freetype_option.disabled() or freetype_required
freetype_option = false
endif
-# The first version of freetype with a pkg-config file is 2.1.5
-freetype_dep = dependency('freetype2', required: freetype_option)
+# The first version of freetype with a pkg-config file is 2.1.5,
+# CMake uses 'freetype' rather than 'freetype2' for the package name
+freetype_package_name = cc.get_argument_syntax() == 'msvc' ? \
+ 'freetype' : 'freetype2'
-if freetype_dep.found()
- freetype2_pc = 'freetype2'
-else
- if cc.get_id() == 'msvc' and cc.has_header('ft2build.h')
- foreach ft2_lib: ['freetype', 'freetypemt']
- if not freetype_dep.found()
- freetype_dep = cc.find_library(ft2_lib, required: freetype_option)
- if freetype_dep.found()
- freetype2_lib = '-l@0@'.format(ft2_lib)
- endif
- endif
- endforeach
- endif
-endif
+freetype_dep = dependency(freetype_package_name,
+ required: freetype_option,
+ fallback: ['freetype2', 'freetype_dep'])
-# Do the fallback now if freetype2 has not been found on the system.
-freetype_option = freetype_required ? true : get_option('freetype')
-if not freetype_dep.found()
- freetype_dep = dependency('freetype2', required: freetype_option,
- fallback: ['freetype2', 'freetype_dep'])
+if freetype_dep.found() and freetype_dep.type_name() == 'pkgconfig'
+ freetype2_pc = 'freetype2'
endif
# To build pangoft2, we need HarfBuzz, FontConfig and FreeType
diff --git a/pango/meson.build b/pango/meson.build
index 9f4c49be..f344bc8b 100644
--- a/pango/meson.build
+++ b/pango/meson.build
@@ -136,18 +136,10 @@ if build_gir
gir_args = [
'--quiet',
]
- harfbuzz_gobject_dep = dependency('harfbuzz-gobject', version: harfbuzz_req_version, required: false)
-
- if not harfbuzz_gobject_dep.found() and cc.get_argument_syntax() == 'msvc'
- # The CMake build files for HarfBuzz (which is used for MSVC builds) do not
- # generate pkg-config files, so look for harfbuzz-gobject.lib
- harfbuzz_gobject_dep = cc.find_library('harfbuzz-gobject', has_headers: ['hb-gobject.h'], required: false)
- endif
-
- if not harfbuzz_gobject_dep.found()
- harfbuzz_gobject_dep = dependency('harfbuzz-gobject', version: harfbuzz_req_version, required: false,
- fallback: ['harfbuzz', 'libharfbuzz_gobject_dep'])
- endif
+ harfbuzz_gobject_dep = dependency('harfbuzz-gobject',
+ version: harfbuzz_req_version,
+ required: false,
+ fallback: ['harfbuzz', 'libharfbuzz_gobject_dep'])
if harfbuzz_gobject_dep.found()
pango_deps += harfbuzz_gobject_dep