mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 00:16:39 +00:00

This is an ongoing series of commits that are reformatting our Python code. This catches the last of the python files to reformat. Since they where so few I bunched them together. Reformatting is done with `black`. If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run git checkout --ours <yourfile> and then reformat it with black. If you run into any problems, post to discourse about it and we will try to help. RFC Thread below: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Reviewed By: jhenderson, #libc, Mordante, sivachandra Differential Revision: https://reviews.llvm.org/D150784
64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
# 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):
|
|
build_group = parser.add_mutually_exclusive_group(required=True)
|
|
build_group.add_argument(
|
|
"--binary", metavar="<file>", help="provide binary file instead of --builder"
|
|
)
|
|
|
|
build_group.add_argument(
|
|
"--builder",
|
|
type=str,
|
|
choices=sorted(_find_build_scripts().keys()),
|
|
help="test builder to use",
|
|
)
|
|
build_group.add_argument(
|
|
"--vs-solution",
|
|
metavar="<file>",
|
|
help="provide a path to an already existing visual studio solution.",
|
|
)
|
|
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]
|