Revert "Fix bug #9222 - smbd ignores the "server signing = no" setting for SMB2."
[Samba/gebeck_regimport.git] / buildtools / wafadmin / 3rdparty / valadoc.py
blobd0a9fe80ed64efac9d08773b47a1b2c21e67099b
1 #! /usr/bin/env python
2 # encoding: UTF-8
3 # Nicolas Joseph 2009
5 from fnmatch import fnmatchcase
6 import os, os.path, re, stat
7 import Task, Utils, Node, Constants
8 from TaskGen import feature, extension, after
9 from Logs import debug, warn, error
11 VALADOC_STR = '${VALADOC}'
13 class valadoc_task(Task.Task):
15 vars = ['VALADOC', 'VALADOCFLAGS']
16 color = 'BLUE'
17 after = 'cxx_link cc_link'
18 quiet = True
20 output_dir = ''
21 doclet = ''
22 package_name = ''
23 package_version = ''
24 files = []
25 protected = True
26 private = False
27 inherit = False
28 deps = False
29 enable_non_null_experimental = False
30 force = False
32 def runnable_status(self):
33 return True
35 def run(self):
36 if self.env['VALADOC']:
37 if not self.env['VALADOCFLAGS']:
38 self.env['VALADOCFLAGS'] = ''
39 cmd = [Utils.subst_vars(VALADOC_STR, self.env)]
40 cmd.append ('-o %s' % self.output_dir)
41 if getattr(self, 'doclet', None):
42 cmd.append ('--doclet %s' % self.doclet)
43 cmd.append ('--package-name %s' % self.package_name)
44 if getattr(self, 'version', None):
45 cmd.append ('--package-version %s' % self.package_version)
46 if getattr(self, 'packages', None):
47 for package in self.packages:
48 cmd.append ('--pkg %s' % package)
49 if getattr(self, 'vapi_dirs', None):
50 for vapi_dir in self.vapi_dirs:
51 cmd.append ('--vapidir %s' % vapi_dir)
52 if not getattr(self, 'protected', None):
53 cmd.append ('--no-protected')
54 if getattr(self, 'private', None):
55 cmd.append ('--private')
56 if getattr(self, 'inherit', None):
57 cmd.append ('--inherit')
58 if getattr(self, 'deps', None):
59 cmd.append ('--deps')
60 if getattr(self, 'enable_non_null_experimental', None):
61 cmd.append ('--enable-non-null-experimental')
62 if getattr(self, 'force', None):
63 cmd.append ('--force')
64 cmd.append (' '.join ([x.relpath_gen (self.generator.bld.bldnode) for x in self.files]))
65 return self.generator.bld.exec_command(' '.join(cmd))
66 else:
67 error ('You must install valadoc <http://live.gnome.org/Valadoc> for generate the API documentation')
68 return -1
70 @feature('valadoc')
71 def process_valadoc(self):
72 task = getattr(self, 'task', None)
73 if not task:
74 task = self.create_task('valadoc')
75 self.task = task
76 if getattr(self, 'output_dir', None):
77 task.output_dir = self.output_dir
78 else:
79 Utils.WafError('no output directory')
80 if getattr(self, 'doclet', None):
81 task.doclet = self.doclet
82 else:
83 Utils.WafError('no doclet directory')
84 if getattr(self, 'package_name', None):
85 task.package_name = self.package_name
86 else:
87 Utils.WafError('no package name')
88 if getattr(self, 'package_version', None):
89 task.package_version = self.package_version
90 if getattr(self, 'packages', None):
91 task.packages = Utils.to_list(self.packages)
92 if getattr(self, 'vapi_dirs', None):
93 task.vapi_dirs = Utils.to_list(self.vapi_dirs)
94 if getattr(self, 'files', None):
95 task.files = self.files
96 else:
97 Utils.WafError('no input file')
98 if getattr(self, 'protected', None):
99 task.protected = self.protected
100 if getattr(self, 'private', None):
101 task.private = self.private
102 if getattr(self, 'inherit', None):
103 task.inherit = self.inherit
104 if getattr(self, 'deps', None):
105 task.deps = self.deps
106 if getattr(self, 'enable_non_null_experimental', None):
107 task.enable_non_null_experimental = self.enable_non_null_experimental
108 if getattr(self, 'force', None):
109 task.force = self.force
111 def detect(conf):
112 conf.find_program('valadoc', var='VALADOC', mandatory=False)