diff options
Diffstat (limited to 'lldb/scripts/Xcode/lldbbuild.py')
-rw-r--r-- | lldb/scripts/Xcode/lldbbuild.py | 107 |
1 files changed, 74 insertions, 33 deletions
diff --git a/lldb/scripts/Xcode/lldbbuild.py b/lldb/scripts/Xcode/lldbbuild.py index bb43315dc29..9c087aaf670 100644 --- a/lldb/scripts/Xcode/lldbbuild.py +++ b/lldb/scripts/Xcode/lldbbuild.py @@ -3,7 +3,8 @@ import subprocess #### UTILITIES #### -def enum (*sequential, **named): + +def enum(*sequential, **named): enums = dict(zip(sequential, range(len(sequential))), **named) return type('Enum', (), enums) @@ -11,42 +12,53 @@ def enum (*sequential, **named): #### INTERFACE TO THE XCODEPROJ #### -def lldb_source_path (): + +def lldb_source_path(): return os.environ.get('SRCROOT') -def expected_llvm_build_path (): + +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")) + return os.path.join( + os.environ.get('LLDB_PATH_TO_LLVM_BUILD'), + package_build_dir_name("llvm")) + -def archives_txt (): +def archives_txt(): return os.path.join(expected_package_build_path(), "archives.txt") -def expected_package_build_path (): + +def expected_package_build_path(): return os.path.abspath(os.path.join(expected_llvm_build_path(), "..")) -def architecture (): + +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 (): + +def lldb_configuration(): return os.environ.get('CONFIGURATION') -def llvm_configuration (): + +def llvm_configuration(): return os.environ.get('LLVM_CONFIGURATION') -def llvm_build_dirtree (): + +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 (): + +def build_type(): return BuildType.Xcode #### VCS UTILITIES #### @@ -54,31 +66,48 @@ def build_type (): VCS = enum('git', 'svn') + def run_in_directory(args, path): return subprocess.check_output(args, cwd=path) + class Git: - def __init__ (self, spec): + + def __init__(self, spec): self.spec = spec - def status (self): + + def status(self): return run_in_directory(["git", "branch", "-v"], self.spec['root']) - def diff (self): + + 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()) + + 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']) + run_in_directory(["git", "checkout", self.spec[ + 'ref']], self.spec['root']) + class SVN: - def __init__ (self, spec): + + def __init__(self, spec): self.spec = spec - def status (self): + + def status(self): return run_in_directory(["svn", "info"], self.spec['root']) - def diff (self): + + def diff(self): return run_in_directory(["svn", "diff"], self.spec['root']) # TODO implement check_out -def vcs (spec): + +def vcs(spec): if spec['vcs'] == VCS.git: return Git(spec) elif spec['vcs'] == VCS.svn: @@ -88,47 +117,59 @@ def vcs (spec): #### SOURCE PATHS #### -def llvm_source_path (): + +def llvm_source_path(): if build_type() == BuildType.Xcode: return os.path.join(lldb_source_path(), "llvm") -def clang_source_path (): + +def clang_source_path(): if build_type() == BuildType.Xcode: return os.path.join(llvm_source_path(), "tools", "clang") -def ninja_source_path (): + +def ninja_source_path(): if build_type() == BuildType.Xcode: return os.path.join(lldb_source_path(), "ninja") #### BUILD PATHS #### -def packages (): + +def packages(): return ["llvm"] -def package_build_dir_name (package): + +def package_build_dir_name(package): return package + "-" + architecture() -def expected_package_build_path_for (package): + +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 {}".format(package)) + 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)) + return os.path.join( + expected_package_build_path(), + package_build_dir_name(package)) -def expected_package_build_paths (): + +def expected_package_build_paths(): return [expected_package_build_path_for(package) for package in packages()] -def library_path (build_path): + +def library_path(build_path): return build_path + "/lib" -def library_paths (): + +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 (): + +def package_build_path(): return os.path.join( llvm_build_dirtree(), os.environ["LLVM_CONFIGURATION"], |