[build] generate hb-version.h once at configure time with Meson

Currently with Meson hb-version.h is generated during the build without
any explicit dependencies which can result in build failures due races
over the file.

Change this to be generated at configure time, so that the file is always
generated once before the build itself.

Closes #2667
This commit is contained in:
Ross Burton 2020-09-07 10:55:33 +01:00
parent bc1c93fbe0
commit 5aff83104e
1 changed files with 8 additions and 9 deletions

View File

@ -1,3 +1,10 @@
hb_version_h = configure_file(
command: [find_program('gen-hb-version.py'), meson.project_version(), '@OUTPUT@', '@INPUT@'],
input: 'hb-version.h.in',
output: 'hb-version.h',
install: true,
install_dir: join_paths(get_option('includedir'), meson.project_name()))
# Base and default-included sources and headers # Base and default-included sources and headers
hb_base_sources = files( hb_base_sources = files(
'hb-aat-layout-ankr-table.hh', 'hb-aat-layout-ankr-table.hh',
@ -214,9 +221,9 @@ hb_base_headers = files(
'hb-shape.h', 'hb-shape.h',
'hb-style.h', 'hb-style.h',
'hb-unicode.h', 'hb-unicode.h',
'hb-version.h',
'hb.h', 'hb.h',
) )
hb_base_headers += hb_version_h
# Optional Sources and Headers with external deps # Optional Sources and Headers with external deps
@ -281,14 +288,6 @@ hb_gobject_headers = files(
'hb-gobject-structs.h', 'hb-gobject-structs.h',
) )
custom_target('hb-version.h',
build_by_default: true,
input: 'hb-version.h.in',
output: 'hb-version.h',
command: [find_program('gen-hb-version.py'), meson.project_version(),
'@OUTPUT@', '@INPUT@'],
)
ragel = find_program('ragel', required: false) ragel = find_program('ragel', required: false)
if not ragel.found() if not ragel.found()
warning('You have to install ragel if you are going to develop HarfBuzz itself') warning('You have to install ragel if you are going to develop HarfBuzz itself')