Chromium Code Reviews| Index: tools/create_debian_packages.py |
| =================================================================== |
| --- tools/create_debian_packages.py (revision 38346) |
| +++ tools/create_debian_packages.py (working copy) |
| @@ -33,23 +33,29 @@ |
| help="Where to put the packages.") |
| result.add_option("-a", "--arch", |
| help='Target architectures (comma-separated).', |
| - metavar='[all,ia32,x64]', |
| + metavar='[all,ia32,x64,arm]', |
| default='x64') |
| + result.add_option("-t", "--toolchain", |
| + help='Cross-compilation toolchain prefix', |
| + default=None) |
| return result |
| -def RunBuildPackage(opt, cwd): |
| +def RunBuildPackage(opt, cwd, toolchain=None): |
| + env = os.environ.copy() |
| + if toolchain != None: |
| + env["TOOLCHAIN"] = '--toolchain=' + toolchain |
| cmd = ['dpkg-buildpackage', '-j%d' % HOST_CPUS] |
| cmd.extend(opt) |
| process = subprocess.Popen(cmd, |
| stdout=subprocess.PIPE, stderr=subprocess.PIPE, |
| - cwd=cwd) |
| + cwd=cwd, env=env) |
| (stdout, stderr) = process.communicate() |
| if process.returncode != 0: |
| raise Exception('Command \'%s\' failed: %s\nSTDOUT: %s' % |
| (' '.join(cmd), stderr, stdout)) |
| -def BuildDebianPackage(tarball, out_dir, arch): |
| +def BuildDebianPackage(tarball, out_dir, arch, toolchain): |
| version = utils.GetVersion() |
| tarroot = 'dart-%s' % version |
| origtarname = 'dart_%s.orig.tar.gz' % version |
| @@ -72,13 +78,19 @@ |
| # Build 32-bit binary package. |
| if ('ia32' in arch): |
| print "Building i386 package" |
| - RunBuildPackage(['-B', '-ai386', '-us', '-uc'], join(temp_dir, tarroot)); |
| + RunBuildPackage(['-B', '-ai386', '-us', '-uc'], join(temp_dir, tarroot)) |
| # Build 64-bit binary package. |
| if ('x64' in arch): |
| print "Building amd64 package" |
| - RunBuildPackage(['-B', '-aamd64', '-us', '-uc'], join(temp_dir, tarroot)); |
| + RunBuildPackage(['-B', '-aamd64', '-us', '-uc'], join(temp_dir, tarroot)) |
| + # Build armv binary package. |
|
Søren Gjesse
2014/08/05 15:20:29
armv -> arm?
zra
2014/08/14 20:42:52
Done.
|
| + if ('arm' in arch): |
| + print "Building arm package" |
| + RunBuildPackage( |
| + ['-B', '-aarm', '-us', '-uc'], join(temp_dir, tarroot), toolchain) |
|
Søren Gjesse
2014/08/05 15:20:29
Is arm the right architectue here? Shouldn't it be
zra
2014/08/14 20:42:52
We currently support both hard and soft fp, which
|
| + |
| # Copy the Debian package files to the build directory. |
| debbase = 'dart_%s' % version |
| source_package = [ |
| @@ -92,6 +104,9 @@ |
| amd64_package = [ |
| '%s-1_amd64.deb' % debbase |
| ] |
| + arm_package = [ |
| + '%s-1_arm.deb' % debbase |
|
Søren Gjesse
2014/08/05 15:20:29
armhf here as well?
zra
2014/08/14 20:42:52
Acknowledged.
|
| + ] |
| for name in source_package: |
| copyfile(join(temp_dir, name), join(out_dir, name)) |
| @@ -101,7 +116,11 @@ |
| if ('x64' in arch): |
| for name in amd64_package: |
| copyfile(join(temp_dir, name), join(out_dir, name)) |
| + if ('arm' in arch): |
| + for name in arm_package: |
| + copyfile(join(temp_dir, name), join(out_dir, name)) |
| + |
| def Main(): |
| if HOST_OS != 'linux': |
| print 'Debian build only supported on linux' |
| @@ -111,7 +130,7 @@ |
| out_dir = options.out_dir |
| tar_filename = options.tar_filename |
| if options.arch == 'all': |
| - options.arch = 'ia32,x64' |
| + options.arch = 'ia32,x64,arm' |
| arch = options.arch.split(',') |
| if not options.out_dir: |
| @@ -122,7 +141,7 @@ |
| utils.GetBuildDir(HOST_OS, HOST_OS), |
| 'dart-%s.tar.gz' % utils.GetVersion()) |
| - BuildDebianPackage(tar_filename, out_dir, arch) |
| + BuildDebianPackage(tar_filename, out_dir, arch, options.toolchain) |
| if __name__ == '__main__': |
| sys.exit(Main()) |