Meson: Build libpsl version number without external command

This commit is contained in:
Tim Rühsen 2018-12-10 21:02:33 +01:00
parent c3133c7fd6
commit 6a47e7c527
1 changed files with 18 additions and 11 deletions

View File

@ -1,15 +1,22 @@
version_arr = meson.project_version().split('.') version = meson.project_version()
cdata = configuration_data() version_arr = version.split('.')
cdata.set('LIBPSL_VERSION', meson.project_version()) major = version_arr[0].to_int()
cdata.set('LIBPSL_VERSION_MAJOR', version_arr[0]) minor = version_arr[1].to_int()
cdata.set('LIBPSL_VERSION_MINOR', version_arr[1]) patch = version_arr[2].to_int()
cdata.set('LIBPSL_VERSION_PATCH', version_arr[2])
# FIXME: We should not run a command-line for this, but I don't think Meson cdata = configuration_data()
# has API for that. cdata.set('LIBPSL_VERSION', version)
printf = find_program('printf') cdata.set('LIBPSL_VERSION_MAJOR', major)
r = run_command(printf, '0x%02x%02x%02x', version_arr, check : true) cdata.set('LIBPSL_VERSION_MINOR', minor)
cdata.set('LIBPSL_VERSION_NUMBER', r.stdout().strip()) cdata.set('LIBPSL_VERSION_PATCH', patch)
hex = '0123456789abcdef'
ver = '0x@0@@1@@2@@3@@4@@5@'
cdata.set('LIBPSL_VERSION_NUMBER',
ver.format(
hex[major / 16], hex[major % 16],
hex[minor / 16], hex[minor % 16],
hex[patch / 16], hex[minor % 16]))
configure_file( configure_file(
input : 'libpsl.h.in', input : 'libpsl.h.in',