Home | Trees | Indices | Help |
|
---|
|
1 """engine.SCons.Variables.PackageVariable 2 3 This file defines the option type for SCons implementing 'package 4 activation'. 5 6 To be used whenever a 'package' may be enabled/disabled and the 7 package path may be specified. 8 9 Usage example: 10 11 Examples: 12 x11=no (disables X11 support) 13 x11=yes (will search for the package installation dir) 14 x11=/usr/local/X11 (will check this path for existence) 15 16 To replace autoconf's --with-xxx=yyy :: 17 18 opts = Variables() 19 opts.Add(PackageVariable('x11', 20 'use X11 installed here (yes = search some places', 21 'yes')) 22 ... 23 if env['x11'] == True: 24 dir = ... search X11 in some standard places ... 25 env['x11'] = dir 26 if env['x11']: 27 ... build with x11 ... 28 """ 29 30 # 31 # Copyright (c) 2001 - 2019 The SCons Foundation 32 # 33 # Permission is hereby granted, free of charge, to any person obtaining 34 # a copy of this software and associated documentation files (the 35 # "Software"), to deal in the Software without restriction, including 36 # without limitation the rights to use, copy, modify, merge, publish, 37 # distribute, sublicense, and/or sell copies of the Software, and to 38 # permit persons to whom the Software is furnished to do so, subject to 39 # the following conditions: 40 # 41 # The above copyright notice and this permission notice shall be included 42 # in all copies or substantial portions of the Software. 43 # 44 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 45 # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 46 # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 47 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 48 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 49 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 50 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 51 # 52 53 __revision__ = "src/engine/SCons/Variables/PackageVariable.py 3a41ed6b288cee8d085373ad7fa02894e1903864 2019-01-23 17:30:35 bdeegan" 54 55 __all__ = ['PackageVariable',] 56 57 import SCons.Errors 58 59 __enable_strings = ('1', 'yes', 'true', 'on', 'enable', 'search') 60 __disable_strings = ('0', 'no', 'false', 'off', 'disable') 6163 """ 64 """ 65 lval = val.lower() 66 if lval in __enable_strings: return True 67 if lval in __disable_strings: return False 68 #raise ValueError("Invalid value for boolean option: %s" % val) 69 return val70 7173 # NB: searchfunc is currently undocumented and unsupported 74 """ 75 """ 76 # TODO write validator, check for path 77 import os 78 if env[key] is True: 79 if searchfunc: 80 env[key] = searchfunc(key, val) 81 elif env[key] and not os.path.exists(val): 82 raise SCons.Errors.UserError( 83 'Path does not exist for option %s: %s' % (key, val))84 8587 # NB: searchfunc is currently undocumented and unsupported 88 """ 89 The input parameters describe a 'package list' option, thus they 90 are returned with the correct converter and validator appended. The 91 result is usable for input to opts.Add() . 92 93 A 'package list' option may either be 'all', 'none' or a list of 94 package names (separated by space). 95 """ 96 help = '\n '.join( 97 (help, '( yes | no | /path/to/%s )' % key)) 98 return (key, help, default, 99 lambda k, v, e: _validator(k,v,e,searchfunc), 100 _converter)101 102 # Local Variables: 103 # tab-width:4 104 # indent-tabs-mode:nil 105 # End: 106 # vim: set expandtab tabstop=4 shiftwidth=4: 107
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Wed Jan 23 17:31:32 2019 | http://epydoc.sourceforge.net |