blob: 00a0fdf4499fad49798d0e7d57aeb12e75f45a1c [file] [log] [blame]
Junxiao Shif7191242015-03-19 05:53:41 -07001# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
2top = '..'
3
Davide Pesavento28ae2cb2016-01-14 22:30:39 +01004from waflib import Options, Errors
Shock Jiang0f0bc4b2015-06-22 15:11:30 -07005
6def options(opt):
7 for subdir in opt.path.ant_glob(['*'], dir=True, src=False):
Davide Pesavento1aa91432018-02-19 22:43:31 -05008 tool = subdir.path_from(opt.path)
9 opt.add_option('--enable-%s' % tool,
10 help='Build tool %s, enabled by default' % tool,
11 action='store_true', dest='enable_%s' % tool)
12 opt.add_option('--disable-%s' % tool,
13 help='Do not build tool %s' % tool,
14 action='store_true', dest='disable_%s' % tool)
15 opt.recurse(str(tool), mandatory=False)
Shock Jiang0f0bc4b2015-06-22 15:11:30 -070016
Junxiao Shif7191242015-03-19 05:53:41 -070017def configure(conf):
Shock Jiang0f0bc4b2015-06-22 15:11:30 -070018 all_tools = set() # all available tools
19 enabled_tools = set() # --enable-X
20 disabled_tools = set() # --disable-X
21
Alexander Afanasyev1b05b0a2017-01-08 11:42:45 -080022 Options.options.disable_pib = True
23
Junxiao Shif7191242015-03-19 05:53:41 -070024 for subdir in conf.path.ant_glob(['*'], dir=True, src=False):
Davide Pesavento1aa91432018-02-19 22:43:31 -050025 tool = str(subdir.path_from(conf.path))
Shock Jiang0f0bc4b2015-06-22 15:11:30 -070026 all_tools.add(tool)
27
28 is_enabled = getattr(Options.options, 'enable_%s' % tool)
29 is_disabled = getattr(Options.options, 'disable_%s' % tool)
30
31 if is_enabled and is_disabled:
32 raise Errors.WafError("--enable-%s and --disable-%s cannot be both specified" % (tool, tool))
33
34 if is_enabled:
35 enabled_tools.add(tool)
36
37 if is_disabled:
38 disabled_tools.add(tool)
39
40 if len(enabled_tools) == 0:
41 conf.env['BUILD_TOOLS'] = list(all_tools - disabled_tools)
42 else:
43 conf.env['BUILD_TOOLS'] = list(enabled_tools)
44
45 for tool in conf.env['BUILD_TOOLS']:
46 conf.recurse(tool, mandatory=False)
47
Junxiao Shif7191242015-03-19 05:53:41 -070048def build(bld):
Shock Jiang0f0bc4b2015-06-22 15:11:30 -070049 for tool in bld.env['BUILD_TOOLS']:
50 bld.recurse(tool)