diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 |
commit | 14f1b3e8826ce43b978db93a62d1166055db5394 (patch) | |
tree | 0a00ad8d3498783fe0193f3b656bca17c4c8697d /scripts/Xcode/lldbbuild.py | |
parent | 4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff) |
Notes
Diffstat (limited to 'scripts/Xcode/lldbbuild.py')
-rw-r--r-- | scripts/Xcode/lldbbuild.py | 119 |
1 files changed, 86 insertions, 33 deletions
diff --git a/scripts/Xcode/lldbbuild.py b/scripts/Xcode/lldbbuild.py index bb43315dc29d..8496cfabf3da 100644 --- a/scripts/Xcode/lldbbuild.py +++ b/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,65 @@ 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 is_host_build(): + rc_project_name = os.environ.get('RC_ProjectName') + if rc_project_name: + if rc_project_name == 'lldb_host': return True + return False + +def rc_release_target(): + return os.environ.get('RC_RELEASE', '') + +def rc_platform_name(): + return os.environ.get('RC_PLATFORM_NAME', 'macOS') + +def architecture(): + if is_host_build(): return 'macosx' 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 +78,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 +129,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"], |