summaryrefslogtreecommitdiffstats
path: root/pidl/wscript
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 17:20:00 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 17:20:00 +0000
commit8daa83a594a2e98f39d764422bfbdbc62c9efd44 (patch)
tree4099e8021376c7d8c05bdf8503093d80e9c7bad0 /pidl/wscript
parentInitial commit. (diff)
downloadsamba-8daa83a594a2e98f39d764422bfbdbc62c9efd44.tar.xz
samba-8daa83a594a2e98f39d764422bfbdbc62c9efd44.zip
Adding upstream version 2:4.20.0+dfsg.upstream/2%4.20.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'pidl/wscript')
-rw-r--r--pidl/wscript61
1 files changed, 61 insertions, 0 deletions
diff --git a/pidl/wscript b/pidl/wscript
new file mode 100644
index 0000000..01f8f5e
--- /dev/null
+++ b/pidl/wscript
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+
+from waflib import Logs, Errors
+
+# This function checks if a perl module is installed on the system.
+def check_system_perl_module(conf, module, version=None):
+ module_check = module
+
+ # Create module string with version
+ if version:
+ module_check = module + ' ' + str(version)
+
+ # Check for system perl module
+ if conf.check_perl_module(module_check) is None:
+ return False
+
+ return True
+
+def options(opt):
+ return
+
+def configure(conf):
+ # Check if perl(Parse::Yapp::Driver) is available.
+ if not check_system_perl_module(conf,
+ "Parse::Yapp::Driver",
+ 1.05):
+ raise Errors.WafError('perl module "Parse::Yapp::Driver" not found')
+
+ # yapp is used for building the parser
+ if not conf.find_program('yapp', var='YAPP'):
+ raise Errors.WafError('yapp not found')
+
+def build(bld):
+
+ # we want to prefer the git version of the parsers if we can.
+ # Only if the source has changed do we want to re-run yapp
+ # But we force the developer to use the pidl standalone build
+ # to regenerate the files.
+ # TODO: only warn in developer mode and if 'git diff HEAD'
+ # shows a difference
+ warn_about_grammar_changes = ('PIDL_BUILD_WARNINGS' in bld.env and (
+ bld.IS_NEWER('idl.yp', 'lib/Parse/Pidl/IDL.pm') or
+ bld.IS_NEWER('expr.yp', 'lib/Parse/Pidl/Expr.pm')))
+
+ if warn_about_grammar_changes:
+ Logs.warn('''
+Pidl grammar files have changed. Please use the pidl standalone build
+to regenerate them with yapp.
+
+$ cd ../pidl
+$ perl Makefile.PL
+$ make lib/Parse/Pidl/IDL.pm lib/Parse/Pidl/Expr.pm
+$ git add lib/Parse/Pidl/IDL.pm lib/Parse/Pidl/Expr.pm
+$ git commit
+$ cd -
+
+If you're 100% sure you haven't changed idl.yp and expr.yp
+try this to avoid this message:
+
+$ touch ../pidl/lib/Parse/Pidl/IDL.pm ../pidl/lib/Parse/Pidl/Expr.pm
+''')