Kate Stone b9c1b51e45 *** This commit represents a complete reformatting of the LLDB source code
*** to conform to clang-format’s LLVM style.  This kind of mass change has
*** two obvious implications:

Firstly, merging this particular commit into a downstream fork may be a huge
effort.  Alternatively, it may be worth merging all changes up to this commit,
performing the same reformatting operation locally, and then discarding the
merge for this particular commit.  The commands used to accomplish this
reformatting were as follows (with current working directory as the root of
the repository):

    find . \( -iname "*.c" -or -iname "*.cpp" -or -iname "*.h" -or -iname "*.mm" \) -exec clang-format -i {} +
    find . -iname "*.py" -exec autopep8 --in-place --aggressive --aggressive {} + ;

The version of clang-format used was 3.9.0, and autopep8 was 1.2.4.

Secondly, “blame” style tools will generally point to this commit instead of
a meaningful prior commit.  There are alternatives available that will attempt
to look through this change and find the appropriate prior commit.  YMMV.

llvm-svn: 280751
2016-09-06 20:57:50 +00:00

177 lines
4.1 KiB
Python

import os
import subprocess
#### UTILITIES ####
def enum(*sequential, **named):
enums = dict(zip(sequential, range(len(sequential))), **named)
return type('Enum', (), enums)
#### SETTINGS ####
#### INTERFACE TO THE XCODEPROJ ####
def lldb_source_path():
return os.environ.get('SRCROOT')
def expected_llvm_build_path():
if build_type() == BuildType.Xcode:
return package_build_path()
else:
return os.path.join(
os.environ.get('LLDB_PATH_TO_LLVM_BUILD'),
package_build_dir_name("llvm"))
def archives_txt():
return os.path.join(expected_package_build_path(), "archives.txt")
def expected_package_build_path():
return os.path.abspath(os.path.join(expected_llvm_build_path(), ".."))
def architecture():
platform_name = os.environ.get('RC_PLATFORM_NAME')
if not platform_name:
platform_name = os.environ.get('PLATFORM_NAME')
platform_arch = os.environ.get('ARCHS').split()[-1]
return platform_name + "-" + platform_arch
def lldb_configuration():
return os.environ.get('CONFIGURATION')
def llvm_configuration():
return os.environ.get('LLVM_CONFIGURATION')
def llvm_build_dirtree():
return os.environ.get('LLVM_BUILD_DIRTREE')
# Edit the code below when adding build styles.
BuildType = enum('Xcode') # (Debug,DebugClang,Release)
def build_type():
return BuildType.Xcode
#### VCS UTILITIES ####
VCS = enum('git',
'svn')
def run_in_directory(args, path):
return subprocess.check_output(args, cwd=path)
class Git:
def __init__(self, spec):
self.spec = spec
def status(self):
return run_in_directory(["git", "branch", "-v"], self.spec['root'])
def diff(self):
return run_in_directory(["git", "diff"], self.spec['root'])
def check_out(self):
run_in_directory(["git",
"clone",
"--depth=1",
self.spec['url'],
self.spec['root']],
lldb_source_path())
run_in_directory(["git", "fetch", "--all"], self.spec['root'])
run_in_directory(["git", "checkout", self.spec[
'ref']], self.spec['root'])
class SVN:
def __init__(self, spec):
self.spec = spec
def status(self):
return run_in_directory(["svn", "info"], self.spec['root'])
def diff(self):
return run_in_directory(["svn", "diff"], self.spec['root'])
# TODO implement check_out
def vcs(spec):
if spec['vcs'] == VCS.git:
return Git(spec)
elif spec['vcs'] == VCS.svn:
return SVN(spec)
else:
return None
#### SOURCE PATHS ####
def llvm_source_path():
if build_type() == BuildType.Xcode:
return os.path.join(lldb_source_path(), "llvm")
def clang_source_path():
if build_type() == BuildType.Xcode:
return os.path.join(llvm_source_path(), "tools", "clang")
def ninja_source_path():
if build_type() == BuildType.Xcode:
return os.path.join(lldb_source_path(), "ninja")
#### BUILD PATHS ####
def packages():
return ["llvm"]
def package_build_dir_name(package):
return package + "-" + architecture()
def expected_package_build_path_for(package):
if build_type() == BuildType.Xcode:
if package != "llvm":
raise "On Xcode build, we only support the llvm package: requested {}"
return package_build_path()
return os.path.join(
expected_package_build_path(),
package_build_dir_name(package))
def expected_package_build_paths():
return [expected_package_build_path_for(package) for package in packages()]
def library_path(build_path):
return build_path + "/lib"
def library_paths():
if build_type() == BuildType.Xcode:
package_build_paths = [package_build_path()]
else:
package_build_paths = expected_package_build_paths()
return [library_path(build_path) for build_path in package_build_paths]
def package_build_path():
return os.path.join(
llvm_build_dirtree(),
os.environ["LLVM_CONFIGURATION"],
os.environ["CURRENT_ARCH"])