[pango/pango2: 7/9] Add defines for native fontmaps
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango/pango2: 7/9] Add defines for native fontmaps
- Date: Sun, 26 Jun 2022 15:56:25 +0000 (UTC)
commit aec5c444c86591275f7e30b9c45756ab89050749
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Jun 26 11:13:01 2022 -0400
Add defines for native fontmaps
Add PANGO_HAS_FC/CORE_TEXT/DIRECT_WRITE_FONTMAP macros
to let apps check for the presence of native fontmaps.
docs/migrating.md | 10 ++++++-
pango2/meson.build | 60 ++++++++++++++++++++-------------------
pango2/pango-utils.h | 10 +++----
pango2/pangocairo-context.c | 6 ++++
pango2/pangocairo-dwrite-font.cpp | 3 --
pango2/pangocoretext-fontmap.c | 5 ++++
pango2/pangodwrite-fontmap.cpp | 6 ++++
pango2/pangofc-fontmap.c | 6 +++-
tests/cxx-test.cpp | 2 +-
9 files changed, 67 insertions(+), 41 deletions(-)
---
diff --git a/docs/migrating.md b/docs/migrating.md
index fbd0bddb6..7c1e3b372 100644
--- a/docs/migrating.md
+++ b/docs/migrating.md
@@ -64,7 +64,15 @@ the `pangocairo.h` header, and use the APIs that are declared in it.
There is still a `pango2cairo.pc` file, if you want to be explicit in your
build configuration about requiring cairo support. If you want to handle
the possible absence of cairo support at runtime, you can check the
-[const@Pango2.RENDERING_CAIRO] macro before including `pangocairo.h`.
+`PANGO2_HAS_CAIRO` macro before including `pangocairo.h`.
+
+The native fontmap implementations provide their own headers:
+`pangofc-fontmap.h`, `pangocoretext-fontmap.h` and `pangodwrite-fontmap.h`.
+If you want to check for the available fontmaps implementations
+at runtime (even though they are entirely determined by the platform you
+are running on, currently), you can check the `PANGO2_HAS_FC_FONTMAP`,
+`PANGO2_HAS_CORE_TEXT_FONTMAP` and `PANGO2_HAS_DIRECT_WRITE_FONTMAP` macros
+before including the corresponding header file.
### PangoFontMap changes
diff --git a/pango2/meson.build b/pango2/meson.build
index dbe562497..0a3e8d323 100644
--- a/pango2/meson.build
+++ b/pango2/meson.build
@@ -97,6 +97,14 @@ pango_gir_includes = [
'Gio-2.0'
]
+pango_features_conf = configuration_data()
+pango_features_conf.set_quoted('PANGO2_VERSION_STRING', meson.project_version())
+pango_features_conf.set('PANGO2_VERSION_MAJOR', pango_major_version)
+pango_features_conf.set('PANGO2_VERSION_MINOR', pango_minor_version)
+pango_features_conf.set('PANGO2_VERSION_MICRO', pango_micro_version)
+pango_features_conf.set('PANGO2_API_VERSION', pango_api_version)
+pango_features_conf.set('PANGO2_CURRENT_MINUS_AGE', '0')
+
if cairo_dep.found()
pango_headers += [
'pangocairo.h',
@@ -116,21 +124,8 @@ if cairo_dep.found()
pango_gir_includes += [
'cairo-1.0',
]
-endif
-
-if host_system == 'darwin'
- pango_headers += [
- 'pangocoretext-fontmap.h',
- ]
- pango_sources += [
- 'pangocoretext-fontmap.c',
- ]
- if cairo_dep.found()
- pango_sources += [
- 'pangocairo-coretext-font.c',
- ]
- endif
+ pango_features_conf.set('PANGO2_HAS_CAIRO', 1)
endif
if host_system == 'linux'
@@ -146,6 +141,26 @@ if host_system == 'linux'
pango_gir_includes += [
'fontconfig-2.0',
]
+
+ pango_features_conf.set('PANGO2_HAS_FC_FONTMAP', 1)
+endif
+
+if host_system == 'darwin'
+ pango_headers += [
+ 'pangocoretext-fontmap.h',
+ ]
+
+ pango_sources += [
+ 'pangocoretext-fontmap.c',
+ ]
+
+ if cairo_dep.found()
+ pango_sources += [
+ 'pangocairo-coretext-font.c',
+ ]
+ endif
+
+ pango_features_conf.set('PANGO2_HAS_CORE_TEXT_FONTMAP', 1)
endif
if host_system == 'windows'
@@ -156,16 +171,14 @@ if host_system == 'windows'
pango_sources += [
'pangodwrite-fontmap.cpp',
]
+
if cairo_dep.found()
pango_sources += [
'pangocairo-dwrite-font.cpp',
]
endif
- pango_deps += [
- cc.find_library('gdi32'),
- cc.find_library('dwrite'),
- ]
+ pango_features_conf.set('PANGO2_HAS_DIRECT_WRITE_FONTMAP', 1)
endif
pango_installed_headers = pango_headers + [ 'pango-version-macros.h' ]
@@ -173,18 +186,7 @@ pango_installed_headers = pango_headers + [ 'pango-version-macros.h' ]
install_headers(pango_installed_headers, subdir: pango_api_path)
# Features header
-pango_features_conf = configuration_data()
-pango_features_conf.set('PANGO2_VERSION_MAJOR', pango_major_version)
-pango_features_conf.set('PANGO2_VERSION_MINOR', pango_minor_version)
-pango_features_conf.set('PANGO2_VERSION_MICRO', pango_micro_version)
-pango_features_conf.set('PANGO2_API_VERSION', pango_api_version)
-pango_features_conf.set('PANGO2_CURRENT_MINUS_AGE', '0')
-if cairo_dep.found()
- pango_features_conf.set('PANGO2_RENDERING_CAIRO', 1)
-endif
-
pango_features_h = configure_file(
- input: 'pango-features.h.meson',
output: 'pango-features.h',
configuration: pango_features_conf,
install: true,
diff --git a/pango2/pango-utils.h b/pango2/pango-utils.h
index f5187dc9c..56ba36edf 100644
--- a/pango2/pango-utils.h
+++ b/pango2/pango-utils.h
@@ -21,6 +21,7 @@
#include <stdio.h>
#include <glib.h>
+#include <pango2/pango-features.h>
#include <pango2/pango-font.h>
G_BEGIN_DECLS
@@ -34,12 +35,6 @@ void pango2_find_paragraph_boundary (const char *text,
int *paragraph_delimiter_index,
int *next_paragraph_start);
-/**
- * PANGO2_RENDERING_CAIRO:
- *
- * Defined to 1 at compile time if Pango2 was built with cairo support.
- */
-
/* Encode a Pango2 version as an integer */
/* Pango2 version checking */
@@ -64,11 +59,13 @@ void pango2_find_paragraph_boundary (const char *text,
*
* The version of Pango2 available at compile-time, encoded using PANGO2_VERSION_ENCODE().
*/
+
/**
* PANGO2_VERSION_STRING:
*
* A string literal containing the version of Pango2 available at compile-time.
*/
+
/**
* PANGO2_VERSION_MAJOR:
*
@@ -89,6 +86,7 @@ void pango2_find_paragraph_boundary (const char *text,
PANGO2_VERSION_MINOR, \
PANGO2_VERSION_MICRO)
+
/* Check that compile-time Pango2 is as new as required */
/**
* PANGO2_VERSION_CHECK:
diff --git a/pango2/pangocairo-context.c b/pango2/pangocairo-context.c
index 2346b635f..b632457a6 100644
--- a/pango2/pangocairo-context.c
+++ b/pango2/pangocairo-context.c
@@ -28,6 +28,12 @@
#include <string.h>
+/**
+ * PANGO2_HAS_CAIRO:
+ *
+ * Defined to 1 at compile time if Pango was built with cairo support.
+ */
+
/**
* pango2_cairo_update_context:
* @cr: a Cairo context
diff --git a/pango2/pangocairo-dwrite-font.cpp b/pango2/pangocairo-dwrite-font.cpp
index 7068d59f6..2d1317599 100644
--- a/pango2/pangocairo-dwrite-font.cpp
+++ b/pango2/pangocairo-dwrite-font.cpp
@@ -30,7 +30,6 @@
#include "pangocairo-private.h"
-/* {{{ DirectWrite PangoCairo utilities */
cairo_font_face_t *
create_cairo_dwrite_font_face (Pango2Font *font)
{
@@ -48,6 +47,4 @@ create_cairo_dwrite_font_face (Pango2Font *font)
#endif /* HAVE_DIRECT_WRITE */
-/* }}} */
-
/* vim:set foldmethod=marker expandtab: */
diff --git a/pango2/pangocoretext-fontmap.c b/pango2/pangocoretext-fontmap.c
index 3b7cdd474..0ee648954 100644
--- a/pango2/pangocoretext-fontmap.c
+++ b/pango2/pangocoretext-fontmap.c
@@ -44,6 +44,11 @@
* CoreText to populate the fontmap with the available fonts.
*/
+/**
+ * PANGO2_HAS_CORE_TEXT_FONTMAP:
+ *
+ * Defined to 1 at compile time if Pango2 was built with CoreText support.
+ */
struct _Pango2CoreTextFontMap
{
diff --git a/pango2/pangodwrite-fontmap.cpp b/pango2/pangodwrite-fontmap.cpp
index 37307a3d2..9e7d7bfc1 100644
--- a/pango2/pangodwrite-fontmap.cpp
+++ b/pango2/pangodwrite-fontmap.cpp
@@ -45,6 +45,12 @@
* uses DirectWrite to populate the fontmap with the available fonts.
*/
+/**
+ * PANGO2_HAS_DIRECT_WRITE_FONTMAP:
+ *
+ * Defined to 1 at compile time if Pango was built with DirectWrite support.
+ */
+
struct _PangoDirectWriteFontMap
{
diff --git a/pango2/pangofc-fontmap.c b/pango2/pangofc-fontmap.c
index c3d026e25..d3be561d1 100644
--- a/pango2/pangofc-fontmap.c
+++ b/pango2/pangofc-fontmap.c
@@ -37,7 +37,6 @@
#include <fontconfig/fontconfig.h>
#include <hb-ot.h>
-
/**
* Pango2FcFontMap:
*
@@ -45,6 +44,11 @@
* fontconfig to populate the fontmap with the available fonts.
*/
+/**
+ * PANGO2_HAS_FC_FONTMAP:
+ *
+ * Defined to 1 at compile time if Pango was built with fontconfig support.
+ */
struct _Pango2FcFontMap
{
diff --git a/tests/cxx-test.cpp b/tests/cxx-test.cpp
index 3fa1c20d9..3a98321cb 100644
--- a/tests/cxx-test.cpp
+++ b/tests/cxx-test.cpp
@@ -4,7 +4,7 @@
#include <pango2/pango.h>
-#if PANGO_RENDERING_CAIRO
+#if PANGO2_HAS_CAIRO
#include <pango2/pangocairo.h>
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]