meson: scripts: introduce meson-gen-sym.py script

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
This commit is contained in:
Pavel Hrdina 2020-07-27 08:28:46 +02:00
parent cc409ac5ed
commit 8fc4d28dba
3 changed files with 30 additions and 14 deletions

29
scripts/meson-gen-sym.py Executable file
View File

@ -0,0 +1,29 @@
#!/usr/bin/env python3
import sys
if len(sys.argv) < 5:
print('invalid arguments')
print('usage: {0} OUTPUT VERSION PUBLIC PRIVATE ...')
sys.exit(1)
outfilepath = sys.argv[1]
version = sys.argv[2]
public = sys.argv[3]
private = sys.argv[4:]
with open(outfilepath, 'w') as out:
out.write('# WARNING: generated from the following files:\n\n')
with open(public) as tmp:
out.write(tmp.read())
out.write('\n\n# Private symbols\n\n')
out.write('{0} {{\n\n'.format(version))
out.write('global:\n\n')
for priv in private:
with open(priv) as tmp:
out.write(tmp.read())
out.write('\n\nlocal:\n*;\n\n};')

View File

@ -19,6 +19,7 @@ scripts = [
'hvsupport.py',
'hyperv_wmi_generator.py',
'meson-gen-def.py',
'meson-gen-sym.py',
'meson-python.sh',
'mock-noinline.py',
'prohibit-duplicate-header.py',

View File

@ -293,20 +293,6 @@ endif ! WITH_LIBSSH
BUILT_SOURCES += $(GENERATED_SYM_FILES)
libvirt.syms: libvirt_public.syms $(USED_SYM_FILES) \
$(ACCESS_DRIVER_SYM_FILES) \
$(top_builddir)/config.status
$(AM_V_GEN)rm -f $@-tmp $@ ; \
printf '# WARNING: generated from the following:\n# $^\n\n' >$@-tmp && \
cat $(srcdir)/libvirt_public.syms >>$@-tmp && \
printf '\n\n# Private symbols\n\n' >>$@-tmp && \
printf 'LIBVIRT_PRIVATE_$(VERSION) {\n\n' >>$@-tmp && \
printf 'global:\n\n' >>$@-tmp && \
cat $(USED_SYM_FILES) $(ACCESS_DRIVER_SYM_FILES) >>$@-tmp && \
printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \
chmod a-w $@-tmp && \
mv $@-tmp libvirt.syms
# Empty source list - it merely links a bunch of convenience libs together
libvirt_la_SOURCES =
libvirt_la_LDFLAGS = \