Mercurial > parpg-core
view waf_paths.py @ 150:3fc7cfa80771
Modified InventoryGrid to set a name for each slot containing the index.
Added getSlot method to InventoryGrid.
Renamed InventoryGUI class to CharacterGUI.
Added InventoryGUI class which handles the inventory part of the CharacterGUI.
An InventoryGUI instance is now created in CharacterGUI.
author | KarstenBock@gmx.net |
---|---|
date | Wed, 05 Oct 2011 12:59:22 +0200 |
parents | feceb6130570 |
children |
line wrap: on
line source
#! /usr/bin/env python # encoding: utf-8 import os import platform import re from waflib import Utils, Options, Context, Logs, Errors try: from collections import OrderedDict except ImportError: # Python 2.6 doesn't have an OrderedDict, so we'll provide one. from ordereddict import OrderedDict prefix_values = OrderedDict( [ ('prefix', ['installation prefix', '/usr/local']), ('exec_prefix', ['installation prefix for platform-dependent binary files', '${PREFIX}']) ] ) option_values = OrderedDict( [ ('bindir', ['user executables', '${EXEC_PREFIX}/bin']), ('sbindir', ['system admin executables', '${EXEC_PREFIX}/sbin']), ('libexecdir', ['program executables', '${EXEC_PREFIX}/libexec']), ('sharedstatedir', ['modifiable architecture-independent data', '${PREFIX}/com']), ('localstatedir', ['modifiable single-machine data', '${PREFIX}/var']), ('libdir', ['object code libraries', '${EXEC_PREFIX}/lib']), ('includedir', ['C header files', '${PREFIX}/include']), ('oldincludedir', ['C header files for non-gcc', '/usr/include']), ('datarootdir', ['read-only arch.-independent data root', '${PREFIX}/share']), # datadir and sysconfdir definitions deviate from GNU standards by # appending the ${APPNAME}, but it makes the install script simpler # since we don't have to redefine install paths on Windows. ('datadir', ['read-only architecture-independent data', '${DATAROOTDIR}/${APPNAME}']), ('sysconfdir', ['read-only single-machine data', '${PREFIX}/etc/${APPNAME}']), ('infodir', ['info documentation', '${DATAROOTDIR}/info']), ('localedir', ['locale-dependent data', '${DATAROOTDIR}/locale']), ('mandir', ['man documentation', '${DATAROOTDIR}/man']), ('docdir', ['documentation root', '${DATAROOTDIR}/doc/${APPNAME}']), ('htmldir', ['html documentation', '${DOCDIR}']), ('dvidir', ['dvi documentation', '${DOCDIR}']), ('pdfdir', ['pdf documentation', '${DOCDIR}']), ('psdir', ['ps documentation', '${DOCDIR}']), ] ) if platform.system() == 'Windows': prefix_values['prefix'][1] = '${PROGRAMFILES}/${APPNAME}' option_values['bindir'][1] = '${EXEC_PREFIX}' option_values['sysconfdir'][1] = '${PREFIX}' option_values['datarootdir'][1] = '${PREFIX}' option_values['datadir'][1] = '${DATAROOTDIR}/data' option_values['docdir'][1] = '${DATAROOTDIR}/doc' del option_values['oldincludedir'] del option_values['mandir'] def options(opt): inst_dir = opt.add_option_group( 'Installation directories', 'By default, "waf install" will install all files into their ' 'appropriate directories under ${PREFIX}. The installation prefix can ' 'be specified using the "--prefix" option, for example ' '"--prefix=$HOME"' ) help_template = '{0} [Default: %default]' for prefix_name in prefix_values.keys(): # Remove any of the core WAF options if they conflict with our options. if opt.parser.get_option(prefix_name): opt.parser.remove_option(prefix_name) help, default = prefix_values[prefix_name] option_name = '--' + prefix_name inst_dir.add_option(option_name, help=help_template.format(help), default=default, dest=prefix_name) # Move the --destdir option to the inst_dir group for consistency. destdir_option = opt.parser.get_option('destdir') if destdir_option: opt.parser.remove_option('destdir') inst_dir.add_option(destdir_option) predef_dirs = opt.add_option_group( 'Pre-defined installation directories', '' ) for name in option_values: help, default = option_values[name] option_name = '--' + name predef_dirs.add_option(option_name, help=help_template.format(help), default=default, dest=name) def configure(conf): def set_env_paths(path_values): errors_raised = False index = 0 for option_name in path_values.keys(): help, default = path_values[option_name] upper_option_name = option_name.upper() try: env[upper_option_name] = Utils.subst_vars( getattr(conf.options, option_name), env, ) except TypeError: errors_raised = True env['INSTALL_PATHS'].append(upper_option_name) if errors_raised: failed_path_names = [name for name in option_values if upper_option_name not in env] else: failed_path_names = [] return failed_path_names env = conf.env if platform.system() == 'Windows': try: env['PROGRAMFILES'] = os.environ['PROGRAMFILES'] except KeyError: Logs.warn('PROGRAMFILES environmental variable is not set') if re.search(r'\$\{PROGRAMFILES\}', conf.options.prefix): Logs.error( 'unable to find path to Program Files direcotry, please ' 'set the PROGRAMFILES environmental variable or ' 'override installation prefix with --prefix' ) if 'APPNAME' not in env: env['APPNAME'] = Context.g_module.APPNAME env['INSTALL_PATHS'] = [] failed_path_names = [] failed_path_names.extend(set_env_paths(prefix_values)) failed_path_names.extend(set_env_paths(option_values)) if failed_path_names: error_message = 'failed to expand install paths {0!r}' raise Errors.ConfigurationError( error_message.format(failed_path_names) )