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

* Removes all Perl scripts and modules * Adds Python3 scripts which mimic the behavior of the Perl scripts * Removes Perl from CMake; Adds Python3 requirement to CMake * The check-instruction-set.pl script is Knights Corner specific. The script is removed and not replicated with a corresponding Python3 script. Relevant Discourse: https://discourse.llvm.org/t/error-compiling-clang-with-offloading-support/79223/4 Fixes: https://github.com/llvm/llvm-project/issues/62289
66 lines
1.6 KiB
Python
66 lines
1.6 KiB
Python
#
|
|
# //===----------------------------------------------------------------------===//
|
|
# //
|
|
# // 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
|
|
# //
|
|
# //===----------------------------------------------------------------------===//
|
|
#
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
class ScriptError(Exception):
|
|
"""Convenience class for user errors generated"""
|
|
|
|
def __init__(self, msg):
|
|
super(Exception, self).__init__(msg)
|
|
|
|
|
|
def error(msg):
|
|
raise ScriptError(msg)
|
|
|
|
|
|
def print_line(msg, form="i"):
|
|
print("{}: ({}) {}".format(os.path.basename(sys.argv[0]), form, msg))
|
|
|
|
|
|
def print_info_line(msg):
|
|
print_line(msg)
|
|
|
|
|
|
def print_error_line(msg):
|
|
print_line(msg, form="x")
|
|
|
|
|
|
class RunResult:
|
|
"""
|
|
Auxiliary class for execute_command() containing the
|
|
results of running a command
|
|
"""
|
|
|
|
def __init__(self, args, stdout, stderr, returncode):
|
|
self.executable = args[0]
|
|
self.stdout = stdout.decode("utf-8")
|
|
self.stderr = stderr.decode("utf-8")
|
|
self.returncode = returncode
|
|
self.command = " ".join(args)
|
|
|
|
|
|
def execute_command(args):
|
|
"""
|
|
Run a command with arguments: args
|
|
|
|
Return RunResult containing stdout, stderr, returncode
|
|
"""
|
|
handle = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
stdout, stderr = handle.communicate()
|
|
returncode = handle.wait()
|
|
return RunResult(args, stdout, stderr, returncode)
|
|
|
|
|
|
# end of file
|