[subset] Add amalgam harfbuzz-subset.cc

Fixes https://github.com/harfbuzz/harfbuzz/issues/3733
This commit is contained in:
Khaled Hosny 2022-07-19 21:15:21 +02:00 committed by Behdad Esfahbod
parent a66ba594b4
commit 605bb1ee3d
6 changed files with 90 additions and 12 deletions

View File

@ -129,7 +129,7 @@ jobs:
- checkout - checkout
- run: apt update || true - run: apt update || true
- run: DEBIAN_FRONTEND=noninteractive apt install -y clang lld git binutils - run: DEBIAN_FRONTEND=noninteractive apt install -y clang lld git binutils
- run: clang -c src/harfbuzz.cc src/hb-subset*.cc -DHB_NO_MT -Werror -std=c++2a - run: clang -c src/harfbuzz-subset.cc -DHB_NO_MT -Werror -std=c++2a
crossbuild-win32: crossbuild-win32:
executor: win32-executor executor: win32-executor

View File

@ -12,7 +12,7 @@ DISTCHECK_CONFIGURE_FLAGS = --enable-introspection
TESTS = TESTS =
check_PROGRAMS = check_PROGRAMS =
EXTRA_DIST += harfbuzz.cc EXTRA_DIST += harfbuzz.cc harfbuzz-subset.cc
EXTRA_DIST += meson.build EXTRA_DIST += meson.build
EXTRA_DIST += fix_get_types.py EXTRA_DIST += fix_get_types.py
@ -160,6 +160,17 @@ pkginclude_HEADERS += $(HB_SUBSET_headers)
pkgconfig_DATA += harfbuzz-subset.pc pkgconfig_DATA += harfbuzz-subset.pc
EXTRA_DIST += harfbuzz-subset.pc.in EXTRA_DIST += harfbuzz-subset.pc.in
harfbuzz-subset.cc: Makefile.sources
$(AM_V_GEN) \
for f in \
$(HB_BASE_sources) \
$(HB_SUBSET_sources) \
; do echo '#include "'$$f'"'; done | \
sort -u | \
grep '[.]cc"' > $(srcdir)/harfbuzz-subset.cc \
|| ($(RM) $(srcdir)/harfbuzz-subset.cc; false)
BUILT_SOURCES += harfbuzz-subset.cc
if HAVE_ICU if HAVE_ICU
if HAVE_ICU_BUILTIN if HAVE_ICU_BUILTIN
HBCFLAGS += $(ICU_CFLAGS) HBCFLAGS += $(ICU_CFLAGS)
@ -294,6 +305,7 @@ harfbuzz.cc: Makefile.sources
$(HB_DIRECTWRITE_sources) \ $(HB_DIRECTWRITE_sources) \
$(HB_CORETEXT_sources) \ $(HB_CORETEXT_sources) \
; do echo '#include "'$$f'"'; done | \ ; do echo '#include "'$$f'"'; done | \
sort -u | \
grep '[.]cc"' > $(srcdir)/harfbuzz.cc \ grep '[.]cc"' > $(srcdir)/harfbuzz.cc \
|| ($(RM) $(srcdir)/harfbuzz.cc; false) || ($(RM) $(srcdir)/harfbuzz.cc; false)
BUILT_SOURCES += harfbuzz.cc BUILT_SOURCES += harfbuzz.cc

View File

@ -9,7 +9,9 @@ if len (sys.argv) < 3:
OUTPUT = sys.argv[1] OUTPUT = sys.argv[1]
CURRENT_SOURCE_DIR = sys.argv[2] CURRENT_SOURCE_DIR = sys.argv[2]
sources = sys.argv[3:]
# make sure input files are unique
sources = sorted(set(sys.argv[3:]))
with open (OUTPUT, "wb") as f: with open (OUTPUT, "wb") as f:
f.write ("".join ('#include "{}"\n'.format (os.path.basename (x)) for x in sources if x.endswith (".cc")).encode ()) f.write ("".join ('#include "{}"\n'.format (os.path.basename (x)) for x in sources if x.endswith (".cc")).encode ())

56
src/harfbuzz-subset.cc Normal file
View File

@ -0,0 +1,56 @@
#include "hb-aat-layout.cc"
#include "hb-aat-map.cc"
#include "hb-blob.cc"
#include "hb-buffer-serialize.cc"
#include "hb-buffer-verify.cc"
#include "hb-buffer.cc"
#include "hb-common.cc"
#include "hb-draw.cc"
#include "hb-face.cc"
#include "hb-fallback-shape.cc"
#include "hb-font.cc"
#include "hb-map.cc"
#include "hb-number.cc"
#include "hb-ot-cff1-table.cc"
#include "hb-ot-cff2-table.cc"
#include "hb-ot-color.cc"
#include "hb-ot-face.cc"
#include "hb-ot-font.cc"
#include "hb-ot-layout.cc"
#include "hb-ot-map.cc"
#include "hb-ot-math.cc"
#include "hb-ot-meta.cc"
#include "hb-ot-metrics.cc"
#include "hb-ot-name.cc"
#include "hb-ot-shape-fallback.cc"
#include "hb-ot-shape-normalize.cc"
#include "hb-ot-shape.cc"
#include "hb-ot-shaper-arabic.cc"
#include "hb-ot-shaper-default.cc"
#include "hb-ot-shaper-hangul.cc"
#include "hb-ot-shaper-hebrew.cc"
#include "hb-ot-shaper-indic-table.cc"
#include "hb-ot-shaper-indic.cc"
#include "hb-ot-shaper-khmer.cc"
#include "hb-ot-shaper-myanmar.cc"
#include "hb-ot-shaper-syllabic.cc"
#include "hb-ot-shaper-thai.cc"
#include "hb-ot-shaper-use.cc"
#include "hb-ot-shaper-vowel-constraints.cc"
#include "hb-ot-tag.cc"
#include "hb-ot-var.cc"
#include "hb-set.cc"
#include "hb-shape-plan.cc"
#include "hb-shape.cc"
#include "hb-shaper.cc"
#include "hb-static.cc"
#include "hb-style.cc"
#include "hb-subset-cff-common.cc"
#include "hb-subset-cff1.cc"
#include "hb-subset-cff2.cc"
#include "hb-subset-input.cc"
#include "hb-subset-plan.cc"
#include "hb-subset-repacker.cc"
#include "hb-subset.cc"
#include "hb-ucd.cc"
#include "hb-unicode.cc"

View File

@ -5,10 +5,16 @@
#include "hb-buffer-verify.cc" #include "hb-buffer-verify.cc"
#include "hb-buffer.cc" #include "hb-buffer.cc"
#include "hb-common.cc" #include "hb-common.cc"
#include "hb-coretext.cc"
#include "hb-directwrite.cc"
#include "hb-draw.cc" #include "hb-draw.cc"
#include "hb-face.cc" #include "hb-face.cc"
#include "hb-fallback-shape.cc" #include "hb-fallback-shape.cc"
#include "hb-font.cc" #include "hb-font.cc"
#include "hb-ft.cc"
#include "hb-gdi.cc"
#include "hb-glib.cc"
#include "hb-graphite2.cc"
#include "hb-map.cc" #include "hb-map.cc"
#include "hb-number.cc" #include "hb-number.cc"
#include "hb-ot-cff1-table.cc" #include "hb-ot-cff1-table.cc"
@ -22,6 +28,9 @@
#include "hb-ot-meta.cc" #include "hb-ot-meta.cc"
#include "hb-ot-metrics.cc" #include "hb-ot-metrics.cc"
#include "hb-ot-name.cc" #include "hb-ot-name.cc"
#include "hb-ot-shape-fallback.cc"
#include "hb-ot-shape-normalize.cc"
#include "hb-ot-shape.cc"
#include "hb-ot-shaper-arabic.cc" #include "hb-ot-shaper-arabic.cc"
#include "hb-ot-shaper-default.cc" #include "hb-ot-shaper-default.cc"
#include "hb-ot-shaper-hangul.cc" #include "hb-ot-shaper-hangul.cc"
@ -34,9 +43,6 @@
#include "hb-ot-shaper-thai.cc" #include "hb-ot-shaper-thai.cc"
#include "hb-ot-shaper-use.cc" #include "hb-ot-shaper-use.cc"
#include "hb-ot-shaper-vowel-constraints.cc" #include "hb-ot-shaper-vowel-constraints.cc"
#include "hb-ot-shape-fallback.cc"
#include "hb-ot-shape-normalize.cc"
#include "hb-ot-shape.cc"
#include "hb-ot-tag.cc" #include "hb-ot-tag.cc"
#include "hb-ot-var.cc" #include "hb-ot-var.cc"
#include "hb-set.cc" #include "hb-set.cc"
@ -47,10 +53,4 @@
#include "hb-style.cc" #include "hb-style.cc"
#include "hb-ucd.cc" #include "hb-ucd.cc"
#include "hb-unicode.cc" #include "hb-unicode.cc"
#include "hb-glib.cc"
#include "hb-ft.cc"
#include "hb-graphite2.cc"
#include "hb-uniscribe.cc" #include "hb-uniscribe.cc"
#include "hb-gdi.cc"
#include "hb-directwrite.cc"
#include "hb-coretext.cc"

View File

@ -527,6 +527,14 @@ libharfbuzz_subset = library('harfbuzz-subset', hb_subset_sources,
link_language: 'c', link_language: 'c',
) )
custom_target('harfbuzz-subset.cc',
build_by_default: true,
output: 'harfbuzz-subset.cc',
input: hb_base_sources + hb_subset_sources,
command: [find_program('gen-harfbuzzcc.py'),
'@OUTPUT@', meson.current_source_dir(), '@INPUT@'],
)
libharfbuzz_subset_dep = declare_dependency( libharfbuzz_subset_dep = declare_dependency(
link_with: libharfbuzz_subset, link_with: libharfbuzz_subset,
include_directories: incsrc, include_directories: incsrc,