summaryrefslogtreecommitdiffstats
path: root/debuginfo-tests/dexter/dex/builder/ParserOptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'debuginfo-tests/dexter/dex/builder/ParserOptions.py')
-rw-r--r--debuginfo-tests/dexter/dex/builder/ParserOptions.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/debuginfo-tests/dexter/dex/builder/ParserOptions.py b/debuginfo-tests/dexter/dex/builder/ParserOptions.py
new file mode 100644
index 00000000000..b6677aac549
--- /dev/null
+++ b/debuginfo-tests/dexter/dex/builder/ParserOptions.py
@@ -0,0 +1,56 @@
+# DExTer : Debugging Experience Tester
+# ~~~~~~ ~ ~~ ~ ~~
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+"""Command line options for subtools that use the builder component."""
+
+import os
+
+from dex.tools import Context
+from dex.utils import is_native_windows
+
+
+def _find_build_scripts():
+ """Finds build scripts in the 'scripts' subdirectory.
+
+ Returns:
+ { script_name (str): directory (str) }
+ """
+ try:
+ return _find_build_scripts.cached
+ except AttributeError:
+ scripts_directory = os.path.join(os.path.dirname(__file__), 'scripts')
+ if is_native_windows():
+ scripts_directory = os.path.join(scripts_directory, 'windows')
+ else:
+ scripts_directory = os.path.join(scripts_directory, 'posix')
+ assert os.path.isdir(scripts_directory), scripts_directory
+ results = {}
+
+ for f in os.listdir(scripts_directory):
+ results[os.path.splitext(f)[0]] = os.path.abspath(
+ os.path.join(scripts_directory, f))
+
+ _find_build_scripts.cached = results
+ return results
+
+
+def add_builder_tool_arguments(parser):
+ parser.add_argument('--binary',
+ metavar="<file>",
+ help='provide binary file to override --builder')
+
+ parser.add_argument(
+ '--builder',
+ type=str,
+ choices=sorted(_find_build_scripts().keys()),
+ help='test builder to use')
+ parser.add_argument(
+ '--cflags', type=str, default='', help='compiler flags')
+ parser.add_argument('--ldflags', type=str, default='', help='linker flags')
+
+
+def handle_builder_tool_options(context: Context) -> str:
+ return _find_build_scripts()[context.options.builder]
OpenPOWER on IntegriCloud