diff options
Diffstat (limited to 'src/boost/tools/build/src/util/option.py')
-rw-r--r-- | src/boost/tools/build/src/util/option.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/boost/tools/build/src/util/option.py b/src/boost/tools/build/src/util/option.py new file mode 100644 index 000000000..33a1b8d75 --- /dev/null +++ b/src/boost/tools/build/src/util/option.py @@ -0,0 +1,35 @@ +# Copyright (c) 2005-2010 Vladimir Prus. +# +# Use, modification and distribution is subject to the Boost Software +# License Version 1.0. (See accompanying file LICENSE.txt or +# https://www.bfgroup.xyz/b2/LICENSE.txt) + +import sys +import re +import b2.util.regex + +options = {} + +# Set a value for a named option, to be used when not overridden on the command +# line. +def set(name, value=None): + + global options + + options[name] = value + +def get(name, default_value=None, implied_value=None): + + global options + + matches = b2.util.regex.transform(sys.argv, "--" + re.escape(name) + "=(.*)") + if matches: + return matches[-1] + else: + m = b2.util.regex.transform(sys.argv, "--(" + re.escape(name) + ")") + if m and implied_value: + return implied_value + elif options.get(name) is not None: + return options[name] + else: + return default_value |