Mercurial > parpg-core
view wscript @ 18:2e2d6d9009a3
Added a --fifepath option to the WAF build script.
* Use the '--fifepath=<path/to/fife>' option to override the default search path and directly import the FIFE Python module from <path/to/fife>.
* Modified the parpg.main module to support the new --fifepath option and ensure that the FIFE Python module pointed to by the --fifepath option is imported, regardless of whether multiple FIFE modules are already in the default search path.
author | M. George Hansen <technopolitica@gmail.com> |
---|---|
date | Fri, 10 Jun 2011 11:29:38 -1000 |
parents | 927f2cf75357 |
children | 07ff8cf8a0f1 |
line wrap: on
line source
#!/usr/bin/env python # encoding: utf-8 import sys import os APPNAME = 'parpg' VERSION = '0.2.0' def options(opt): opt.load('waf_paths python') ext_dep = opt.add_option_group( 'External dependencies', '', ) ext_dep.add_option( '--fifepath', help='Path to where the fife Python package is located', default='', dest='fifepath', ) def configure(cnf): cnf.load('waf_paths python') if sys.platform == 'Windows': min_python_version = (2, 7) else: min_python_version = (2, 6) cnf.check_python_version(min_python_version) cnf.env['FIFEPATH'] = \ os.path.abspath(os.path.expanduser(cnf.options.fifepath)) or \ cnf.env['PYTHONDIR'] def build(bld): subst_vars = _get_subst_vars(bld) if sys.platform == 'Windows': launcher_template = 'bin/parpg.bat.in' launcher = 'parpg.bat' else: launcher_template = 'bin/parpg.sh.in' launcher = 'parpg' args = dict( features='subst', source=launcher_template, target=launcher, install_path='${BINDIR}', chmod=0755, ) args.update(subst_vars) bld(**args) bld( features='py', source=bld.path.ant_glob('src/parpg/**/*.py', dir=True), install_from='src', ) args = dict( features='subst', source='parpg.cfg.in', target='parpg.cfg', install_path='${SYSCONFDIR}', chmod=0644, ) args.update(subst_vars) bld(**args) bld.install_files( files=bld.path.find_node('data').ant_glob('**/*'), dest='${DATADIR}', relative_trick=True, chmod=0644, ) def _get_subst_vars(cnf): # Set up substitution variables for the launcher and configuration files. subst_vars = {} install_path_names = cnf.env['INSTALL_PATHS'] for path_name in install_path_names + ['PYTHONDIR']: subst_vars[path_name] = cnf.env[path_name] # If the destdir option is used we'll have to manually prefix any path # variables with it since env doesn't get updated. # NOTE M. George Hansen 2011-06-09: This should probably be done # automatically. Maybe we should patch WAF and contribute it the WAF # project. destdir = cnf.options.destdir if destdir: for key, path in subst_vars.items(): # If this is an absolute path, prefix it with the destdir. if os.path.isabs(path): subst_vars[key] = os.path.join( destdir, os.path.splitdrive(path)[1].lstrip('/\\'), ) subst_vars['FIFEPATH'] = cnf.env['FIFEPATH'] return subst_vars