1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-23 09:57:40 +03:00

wafsamba: Use abi_match in version script files.

This commit is contained in:
Jelmer Vernooij 2010-12-17 22:23:52 +01:00
parent 03fbf9ea0b
commit 2d1e91fd0c
2 changed files with 19 additions and 7 deletions

View File

@ -136,7 +136,6 @@ def abi_check(self):
tsk.ABI_GEN = abi_gen
def abi_process_file(fname, version, symmap):
'''process one ABI file, adding new symbols to the symmap'''
f = open(fname, mode='r')
@ -146,7 +145,7 @@ def abi_process_file(fname, version, symmap):
symmap[symname] = version
f.close()
def abi_write_vscript(vscript, libname, version, symmap):
def abi_write_vscript(vscript, libname, version, symmap, abi_match):
'''write a vscript file for a library in --version-script format'''
invmap = {}
@ -164,7 +163,13 @@ def abi_write_vscript(vscript, libname, version, symmap):
f.write("\t\t%s;\n" % s);
f.write("}%s;\n\n" % last_key)
last_key = " %s" % symver
f.write("%s { global: *;};\n" % version)
f.write("%s {\n" % version)
f.write("\tglobal:\n")
for x in abi_match:
f.write("\t\t%s;\n" % x)
if abi_match != ["*"]:
f.write("\tlocal: *;\n")
f.write("};\n")
f.close()
@ -180,10 +185,11 @@ def abi_build_vscript(task):
basename = os.path.basename(fname)
version = basename[len(task.env.LIBNAME)+1:-len(".sigs")]
abi_process_file(fname, version, symmap)
abi_write_vscript(tgt, task.env.LIBNAME, task.env.VERSION, symmap)
abi_write_vscript(tgt, task.env.LIBNAME, task.env.VERSION, symmap,
task.env.ABI_MATCH)
def ABI_VSCRIPT(bld, libname, abi_directory, version, vscript):
def ABI_VSCRIPT(bld, libname, abi_directory, version, vscript, abi_match=None):
'''generate a vscript file for our public libraries'''
if abi_directory:
source = bld.path.ant_glob('%s/%s-[0-9]*.sigs' % (abi_directory, libname))
@ -199,7 +205,12 @@ def ABI_VSCRIPT(bld, libname, abi_directory, version, vscript):
source=source,
group='vscripts',
target=vscript)
if abi_match is None:
abi_match = ["*"]
else:
abi_match = samba_utils.TO_LIST(abi_match)
t.env.ABI_MATCH = abi_match
t.env.VERSION = version
t.env.LIBNAME = libname
t.vars = ['LIBNAME', 'VERSION']
t.vars = ['LIBNAME', 'VERSION', 'ABI_MATCH']
Build.BuildContext.ABI_VSCRIPT = ABI_VSCRIPT

View File

@ -212,7 +212,8 @@ def SAMBA_LIBRARY(bld, libname, source,
version = None
if version:
vscript = "%s.vscript" % libname
bld.ABI_VSCRIPT(libname, abi_directory, version, vscript)
bld.ABI_VSCRIPT(libname, abi_directory, version, vscript,
abi_match)
fullname = bld.env.shlib_PATTERN % bundled_name
bld.add_manual_dependency(bld.path.find_or_declare(fullname), bld.path.find_or_declare(vscript))
if Options.is_install: