aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mesonmain.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/mesonmain.py')
-rw-r--r--mesonbuild/mesonmain.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/mesonbuild/mesonmain.py b/mesonbuild/mesonmain.py
index 2c1ca97..7ec66fc 100644
--- a/mesonbuild/mesonmain.py
+++ b/mesonbuild/mesonmain.py
@@ -234,6 +234,25 @@ def set_meson_command(mainfile: str) -> None:
from . import mesonlib
mesonlib.set_meson_command(mainfile)
+def validate_original_args(args):
+ import mesonbuild.options
+ import itertools
+
+ def has_startswith(coll, target):
+ for entry in coll:
+ if entry.startswith(target):
+ return True
+ return False
+ #ds = [x for x in args if x.startswith('-D')]
+ #longs = [x for x in args if x.startswith('--')]
+ for optionkey in itertools.chain(mesonbuild.options.BUILTIN_DIR_OPTIONS, mesonbuild.options.BUILTIN_CORE_OPTIONS):
+ longarg = mesonbuild.options.BuiltinOption.argparse_name_to_arg(optionkey.name)
+ shortarg = f'-D{optionkey.name}'
+ if has_startswith(args, longarg) and has_startswith(args, shortarg):
+ sys.exit(
+ f'Got argument {optionkey.name} as both {shortarg} and {longarg}. Pick one.')
+
+
def run(original_args: T.List[str], mainfile: str) -> int:
if os.environ.get('MESON_SHOW_DEPRECATIONS'):
# workaround for https://bugs.python.org/issue34624
@@ -281,6 +300,7 @@ def run(original_args: T.List[str], mainfile: str) -> int:
return run_script_command(args[1], args[2:])
set_meson_command(mainfile)
+ validate_original_args(args)
return CommandLineParser().run(args)
def main() -> int: