Mercurial > parpg-core
changeset 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 | 15107282d9eb |
children | e97972cc7110 |
files | parpg.cfg.in src/parpg/main.py wscript |
diffstat | 3 files changed, 25 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/parpg.cfg.in Thu Jun 09 21:40:51 2011 -1000 +++ b/parpg.cfg.in Fri Jun 10 11:29:38 2011 -1000 @@ -73,6 +73,9 @@ [parpg] +# Directory where the fife python module is located (path). +FifePath = "@FIFEPATH@" + # System directory where all data files are located (path) DataPath = "@DATADIR@"
--- a/src/parpg/main.py Thu Jun 09 21:40:51 2011 -1000 +++ b/src/parpg/main.py Fri Jun 10 11:29:38 2011 -1000 @@ -53,16 +53,17 @@ logger = logging.getLogger('parpg') try: - sys.path.insert(0, settings.parpg.FifePath) + old_path = sys.path + sys.path = [settings.parpg.FifePath] + import fife except AttributeError: logger.warning('[parpg] section has no FifePath option') - -try: - from fife import fife except ImportError: logger.critical("Could not import fife module. Please install fife or add " - "'FifePath' to the [parpg] section of your settings file") + "'FifePath' to the [parpg] section of your settings file") sys.exit(1) +finally: + sys.path = old_path from parpg.application import PARPGApplication from parpg.common import utils
--- a/wscript Thu Jun 09 21:40:51 2011 -1000 +++ b/wscript Fri Jun 10 11:29:38 2011 -1000 @@ -8,6 +8,17 @@ 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') @@ -16,6 +27,10 @@ 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) @@ -79,4 +94,5 @@ destdir, os.path.splitdrive(path)[1].lstrip('/\\'), ) + subst_vars['FIFEPATH'] = cnf.env['FIFEPATH'] return subst_vars \ No newline at end of file