diff options
author | dyen@chromium.org <dyen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-25 23:30:23 +0000 |
---|---|---|
committer | dyen@chromium.org <dyen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-25 23:30:23 +0000 |
commit | 5cda5ad6a68c3524a5a0ae009ef3b4e561565ada (patch) | |
tree | 0aba7719181f86b1986f143e67118e3a1d0d3128 /native_client_sdk | |
parent | 56952a94d4f3734963ca6ef57c9ff05603403b8a (diff) | |
download | chromium_src-5cda5ad6a68c3524a5a0ae009ef3b4e561565ada.zip chromium_src-5cda5ad6a68c3524a5a0ae009ef3b4e561565ada.tar.gz chromium_src-5cda5ad6a68c3524a5a0ae009ef3b4e561565ada.tar.bz2 |
NaCl: Update revision in DEPS, r13018 -> r13078.
Chromium NaCl scripts now uses package_version to extract.
Now that we have split up the toolchain into multiple tars, we should
use the package versioning script to manage which tars to extract.
Unfortunately, currently the SDK uses different directory names compared
to what the NaCl toolchain directories normally use, so we also must map
and move the toolchain directories to the SDK ones.
BUG=365817
TEST= trybots
Review URL: https://codereview.chromium.org/249153003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266284 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'native_client_sdk')
-rwxr-xr-x | native_client_sdk/src/build_tools/build_sdk.py | 143 |
1 files changed, 56 insertions, 87 deletions
diff --git a/native_client_sdk/src/build_tools/build_sdk.py b/native_client_sdk/src/build_tools/build_sdk.py index e90a142..1d8086f 100755 --- a/native_client_sdk/src/build_tools/build_sdk.py +++ b/native_client_sdk/src/build_tools/build_sdk.py @@ -49,7 +49,12 @@ sys.path.append(os.path.join(NACL_DIR, 'build')) import getos import oshelpers -CYGTAR = os.path.join(NACL_DIR, 'build', 'cygtar.py') +BUILD_DIR = os.path.join(NACL_DIR, 'build') +NACL_TOOLCHAIN_DIR = os.path.join(NACL_DIR, 'toolchain') +NACL_TOOLCHAINTARS_DIR = os.path.join(NACL_TOOLCHAIN_DIR, '.tars') + +CYGTAR = os.path.join(BUILD_DIR, 'cygtar.py') +PKGVER = os.path.join(BUILD_DIR, 'package_version', 'package_version.py') NACLPORTS_URL = 'https://naclports.googlecode.com/svn/trunk/src' NACLPORTS_REV = 1226 @@ -58,29 +63,14 @@ GYPBUILD_DIR = 'gypbuild' options = None - -def GetGlibcToolchain(): - tcdir = os.path.join(NACL_DIR, 'toolchain', '.tars') - tcname = 'toolchain_%s_x86.tar.bz2' % getos.GetPlatform() - return os.path.join(tcdir, tcname) - - -def GetNewlibToolchain(): - tcdir = os.path.join(NACL_DIR, 'toolchain', '.tars') - tcname = 'naclsdk_%s_x86.tgz' % getos.GetPlatform() - return os.path.join(tcdir, tcname) - - -def GetBionicToolchain(): - tcdir = os.path.join(NACL_DIR, 'toolchain', '.tars') - tcname = 'naclsdk_%s_arm_bionic.tgz' % getos.GetPlatform() - return os.path.join(tcdir, tcname) - - -def GetPNaClToolchain(): - tcdir = os.path.join(NACL_DIR, 'toolchain', '.tars') - tcname = 'naclsdk_pnacl_%s_x86.tgz' % getos.GetPlatform() - return os.path.join(tcdir, tcname) + # Map of: ToolchainName: (PackageName, SDKDir). +TOOLCHAIN_PACKAGE_MAP = { + 'newlib': ('nacl_x86_newlib', '%(platform)s_x86_newlib'), + 'bionic': ('nacl_arm_bionic', '%(platform)s_arm_bionic'), + 'arm': ('nacl_arm_newlib', '%(platform)s_arm_newlib'), + 'glibc': ('nacl_x86_glibc', '%(platform)s_x86_glibc'), + 'pnacl': ('pnacl_newlib', '%(platform)s_pnacl') + } def GetToolchainNaClInclude(tcname, tcpath, arch): @@ -131,8 +121,14 @@ def GetToolchainDirName(tcname, xarch): def GetGypToolchainLib(tcname, xarch): - tcpath = os.path.join(GetGypGenDir(xarch), 'sdk', 'toolchain', - GetToolchainDirName(tcname, xarch)) + if xarch == 'arm': + toolchain = xarch + else: + toolchain = tcname + + tcpath = os.path.join(GetGypGenDir(xarch), 'sdk', + '%s_x86' % getos.GetPlatform(), + TOOLCHAIN_PACKAGE_MAP[toolchain][0]) return GetToolchainNaClLib(tcname, tcpath, xarch) @@ -149,12 +145,12 @@ def GetPNaClNativeLib(tcpath, arch): def BuildStepDownloadToolchains(toolchains): - buildbot_common.BuildStep('Running download_toolchains.py') - download_script = os.path.join('build', 'download_toolchains.py') - args = [sys.executable, download_script, '--no-arm-trusted', - '--arm-untrusted', '--keep'] + buildbot_common.BuildStep('Running package_version.py') + args = [sys.executable, PKGVER, '--exclude', 'arm_trusted'] if 'bionic' in toolchains: - args.append('--allow-bionic') + build_platform = '%s_x86' % getos.GetPlatform() + args.extend(['--append', os.path.join(build_platform, 'nacl_arm_bionic')]) + args.append('sync') buildbot_common.Run(args, cwd=NACL_DIR) @@ -199,66 +195,39 @@ def BuildStepCopyTextFiles(pepperdir, pepper_ver, chrome_revision, def BuildStepUntarToolchains(pepperdir, toolchains): buildbot_common.BuildStep('Untar Toolchains') platform = getos.GetPlatform() + build_platform = '%s_x86' % platform tmpdir = os.path.join(OUT_DIR, 'tc_temp') buildbot_common.RemoveDir(tmpdir) buildbot_common.MakeDir(tmpdir) - if 'newlib' in toolchains: - # Untar the newlib toolchains - tarfile = GetNewlibToolchain() - buildbot_common.Run([sys.executable, CYGTAR, '-C', tmpdir, '-xf', tarfile], - cwd=NACL_DIR) - - # Then rename/move it to the pepper toolchain directory - srcdir = os.path.join(tmpdir, 'sdk', 'nacl-sdk') - tcname = platform + '_x86_newlib' - newlibdir = os.path.join(pepperdir, 'toolchain', tcname) - buildbot_common.Move(srcdir, newlibdir) - - if 'bionic' in toolchains: - # Untar the bionic toolchains - tarfile = GetBionicToolchain() - tcname = platform + '_arm_bionic' - buildbot_common.Run([sys.executable, CYGTAR, '-C', tmpdir, '-xf', tarfile], - cwd=NACL_DIR) - srcdir = os.path.join(tmpdir, tcname) - bionicdir = os.path.join(pepperdir, 'toolchain', tcname) - buildbot_common.Move(srcdir, bionicdir) - - if 'arm' in toolchains: - # Copy the existing arm toolchain from native_client tree - tcname = platform + '_arm_newlib' - arm_toolchain = os.path.join(NACL_DIR, 'toolchain', '%s_x86' % platform, - 'nacl_arm_newlib' ) - arm_toolchain_sdk = os.path.join(pepperdir, 'toolchain', tcname) - buildbot_common.CopyDir(arm_toolchain, arm_toolchain_sdk) - - if 'glibc' in toolchains: - # Untar the glibc toolchains - tarfile = GetGlibcToolchain() - tcname = platform + '_x86_glibc' - buildbot_common.Run([sys.executable, CYGTAR, '-C', tmpdir, '-xf', tarfile], - cwd=NACL_DIR) - - # Then rename/move it to the pepper toolchain directory - srcdir = os.path.join(tmpdir, 'toolchain', platform + '_x86') - glibcdir = os.path.join(pepperdir, 'toolchain', tcname) - buildbot_common.Move(srcdir, glibcdir) - - # Untar the pnacl toolchains - if 'pnacl' in toolchains: - tmpdir = os.path.join(tmpdir, 'pnacl') - buildbot_common.RemoveDir(tmpdir) - buildbot_common.MakeDir(tmpdir) - tarfile = GetPNaClToolchain() - tcname = platform + '_pnacl' - buildbot_common.Run([sys.executable, CYGTAR, '-C', tmpdir, '-xf', tarfile], - cwd=NACL_DIR) - - # Then rename/move it to the pepper toolchain directory - pnacldir = os.path.join(pepperdir, 'toolchain', tcname) - buildbot_common.Move(tmpdir, pnacldir) - + # Create a list of extract packages tuples, the first part should be + # "$PACKAGE_TARGET/$PACKAGE". The second part should be the destination + # directory relative to pepperdir/toolchain. + extract_packages = [] + for toolchain in toolchains: + toolchain_map = TOOLCHAIN_PACKAGE_MAP.get(toolchain, None) + if toolchain_map: + package_name, tcname = toolchain_map + package_tuple = (os.path.join(build_platform, package_name), + tcname % {'platform': platform}) + extract_packages.append(package_tuple) + + if extract_packages: + # Extract all of the packages into the temp directory. + package_names = [package_tuple[0] for package_tuple in extract_packages] + buildbot_common.Run([sys.executable, PKGVER, + '--packages', ','.join(package_names), + '--tar-dir', NACL_TOOLCHAINTARS_DIR, + '--dest-dir', tmpdir, + 'extract']) + + # Move all the packages we extracted to the correct destination. + for package_name, dest_dir in extract_packages: + full_src_dir = os.path.join(tmpdir, package_name) + full_dst_dir = os.path.join(pepperdir, 'toolchain', dest_dir) + buildbot_common.Move(full_src_dir, full_dst_dir) + + # Cleanup the temporary directory we are no longer using. buildbot_common.RemoveDir(tmpdir) |