diff options
author | David Robillard <d@drobilla.net> | 2018-09-15 18:29:55 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2018-09-15 18:29:55 +0200 |
commit | 812c56d4b5167ba90c0ad8f4eb8ce1774efc5cbd (patch) | |
tree | 2a8fe0f824cd8f9d9929e69b3717ac332a54cd09 /waflib/extras/proc.py | |
parent | dc3db773eef6e735e240dfe1a5349fbce3eff6e9 (diff) | |
parent | 394c6862c3d82833fa87eb9689c3bc99d978b93b (diff) | |
download | ganv-812c56d4b5167ba90c0ad8f4eb8ce1774efc5cbd.tar.gz ganv-812c56d4b5167ba90c0ad8f4eb8ce1774efc5cbd.tar.bz2 ganv-812c56d4b5167ba90c0ad8f4eb8ce1774efc5cbd.zip |
Merge commit '394c6862c3d82833fa87eb9689c3bc99d978b93b' as 'waflib'
Diffstat (limited to 'waflib/extras/proc.py')
-rw-r--r-- | waflib/extras/proc.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/waflib/extras/proc.py b/waflib/extras/proc.py new file mode 100644 index 0000000..764abec --- /dev/null +++ b/waflib/extras/proc.py @@ -0,0 +1,54 @@ +#! /usr/bin/env python +# per rosengren 2011 + +from os import environ, path +from waflib import TaskGen, Utils + +def options(opt): + grp = opt.add_option_group('Oracle ProC Options') + grp.add_option('--oracle_home', action='store', default=environ.get('PROC_ORACLE'), help='Path to Oracle installation home (has bin/lib)') + grp.add_option('--tns_admin', action='store', default=environ.get('TNS_ADMIN'), help='Directory containing server list (TNS_NAMES.ORA)') + grp.add_option('--connection', action='store', default='dummy-user/dummy-password@dummy-server', help='Format: user/password@server') + +def configure(cnf): + env = cnf.env + if not env.PROC_ORACLE: + env.PROC_ORACLE = cnf.options.oracle_home + if not env.PROC_TNS_ADMIN: + env.PROC_TNS_ADMIN = cnf.options.tns_admin + if not env.PROC_CONNECTION: + env.PROC_CONNECTION = cnf.options.connection + cnf.find_program('proc', var='PROC', path_list=env.PROC_ORACLE + path.sep + 'bin') + +def proc(tsk): + env = tsk.env + gen = tsk.generator + inc_nodes = gen.to_incnodes(Utils.to_list(getattr(gen,'includes',[])) + env['INCLUDES']) + + cmd = ( + [env.PROC] + + ['SQLCHECK=SEMANTICS'] + + (['SYS_INCLUDE=(' + ','.join(env.PROC_INCLUDES) + ')'] + if env.PROC_INCLUDES else []) + + ['INCLUDE=(' + ','.join( + [i.bldpath() for i in inc_nodes] + ) + ')'] + + ['userid=' + env.PROC_CONNECTION] + + ['INAME=' + tsk.inputs[0].bldpath()] + + ['ONAME=' + tsk.outputs[0].bldpath()] + ) + exec_env = { + 'ORACLE_HOME': env.PROC_ORACLE, + 'LD_LIBRARY_PATH': env.PROC_ORACLE + path.sep + 'lib', + } + if env.PROC_TNS_ADMIN: + exec_env['TNS_ADMIN'] = env.PROC_TNS_ADMIN + return tsk.exec_command(cmd, env=exec_env) + +TaskGen.declare_chain( + name = 'proc', + rule = proc, + ext_in = '.pc', + ext_out = '.c', +) + |