4 from os
import environ
, path
5 from waflib
import TaskGen
, Utils
8 grp
= opt
.add_option_group('Oracle ProC Options')
9 grp
.add_option('--oracle_home', action
='store', default
=environ
.get('PROC_ORACLE'), help='Path to Oracle installation home (has bin/lib)')
10 grp
.add_option('--tns_admin', action
='store', default
=environ
.get('TNS_ADMIN'), help='Directory containing server list (TNS_NAMES.ORA)')
11 grp
.add_option('--connection', action
='store', default
='dummy-user/dummy-password@dummy-server', help='Format: user/password@server')
15 if not env
.PROC_ORACLE
:
16 env
.PROC_ORACLE
= cnf
.options
.oracle_home
17 if not env
.PROC_TNS_ADMIN
:
18 env
.PROC_TNS_ADMIN
= cnf
.options
.tns_admin
19 if not env
.PROC_CONNECTION
:
20 env
.PROC_CONNECTION
= cnf
.options
.connection
21 cnf
.find_program('proc', var
='PROC', path_list
=env
.PROC_ORACLE
+ path
.sep
+ 'bin')
26 inc_nodes
= gen
.to_incnodes(Utils
.to_list(getattr(gen
,'includes',[])) + env
['INCLUDES'])
30 ['SQLCHECK=SEMANTICS'] +
31 (['SYS_INCLUDE=(' + ','.join(env
.PROC_INCLUDES
) + ')']
32 if env
.PROC_INCLUDES
else []) +
33 ['INCLUDE=(' + ','.join(
34 [i
.bldpath() for i
in inc_nodes
]
36 ['userid=' + env
.PROC_CONNECTION
] +
37 ['INAME=' + tsk
.inputs
[0].bldpath()] +
38 ['ONAME=' + tsk
.outputs
[0].bldpath()]
41 'ORACLE_HOME': env
.PROC_ORACLE
,
42 'LD_LIBRARY_PATH': env
.PROC_ORACLE
+ path
.sep
+ 'lib',
44 if env
.PROC_TNS_ADMIN
:
45 exec_env
['TNS_ADMIN'] = env
.PROC_TNS_ADMIN
46 return tsk
.exec_command(cmd
, env
=exec_env
)
48 TaskGen
.declare_chain(