doc: add vfs_shell_snap manpage
[Samba.git] / third_party / wscript
blob4f6347795eb1b47319f668782d7faf5ff595191f
1 #!/usr/bin/env python
3 import Utils
4 import os
5 import sys
7 # work out what python external libraries we need to install
8 external_pkgs = {
9 "dns.resolver": "dnspython/dns",
10 "iso8601": "pyiso8601/iso8601",
14 def find_third_party_module(conf, module, package):
15 conf.COMPOUND_START("Checking for third party Python module %s" % module)
16 try:
17 __import__(module)
18 except ImportError:
19 pass
20 else:
21 # Installed on the system
22 conf.COMPOUND_END("system")
24 old_path = sys.path
25 try:
26 sys.path.append(os.path.join(conf.curdir, os.path.dirname(package)))
27 try:
28 __import__(module)
29 except ImportError:
30 if (os.path.isdir(os.path.join(conf.srcdir, ".git")) and
31 os.path.isfile(os.path.join(conf.srcdir, ".gitmodule"))):
32 raise Utils.WafError("""\
33 Unable to find Python module '%s'. Please install the system package or check \
34 out the relevant submodule by running 'git submodule init; git submodule update'.
35 """ % module)
36 else:
37 raise Utils.WafError("""\
38 Unable to find Python module '%s'. Please install the system package or place a copy in
39 %s.
40 """ % (module, package))
41 else:
42 conf.COMPOUND_END("bundled")
43 finally:
44 sys.path = old_path
47 def configure(conf):
48 for module, package in external_pkgs.items():
49 find_third_party_module(conf, module, package)
50 conf.RECURSE('popt')
51 conf.RECURSE('zlib')
54 def build(bld):
55 list = []
57 for module, package in external_pkgs.items():
58 try:
59 __import__(module)
60 except ImportError:
61 list.append(package)
63 for e in list:
64 bld.INSTALL_WILDCARD('${PYTHONARCHDIR}/samba/third_party', e + '/**/*', flat=False,
65 exclude='*.pyc', trim_path=os.path.dirname(e))
67 bld.SAMBA_GENERATOR('third_party_init_py',
68 rule='touch ${TGT}',
69 target='empty_file')
71 bld.INSTALL_FILES('${PYTHONARCHDIR}/samba/third_party', 'empty_file', destname='__init__.py')
72 bld.RECURSE('zlib')
73 bld.RECURSE('popt')