linux: optionaly allow building x64 targets with sysroot
This commit is contained in:
parent
60f40a6704
commit
e27e3d641c
5 changed files with 48 additions and 14 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -6,6 +6,7 @@
|
|||
/external_binaries/
|
||||
/out/
|
||||
/vendor/brightray/vendor/download/
|
||||
/vendor/debian_wheezy_amd64-sysroot/
|
||||
/vendor/debian_wheezy_arm-sysroot/
|
||||
/vendor/debian_wheezy_i386-sysroot/
|
||||
/vendor/python_26/
|
||||
|
|
|
@ -43,8 +43,8 @@ def main():
|
|||
args.libcc_source_path, args.libcc_shared_library_path,
|
||||
args.libcc_static_library_path)
|
||||
|
||||
if args.target_arch in ['arm', 'ia32'] and PLATFORM == 'linux':
|
||||
download_sysroot(args.target_arch)
|
||||
if PLATFORM == 'linux':
|
||||
download_sysroot(args.target_arch, args.sysroot_url, args.sysroot_sha1sum)
|
||||
|
||||
create_chrome_version_h()
|
||||
touch_config_gypi()
|
||||
|
@ -79,6 +79,10 @@ def parse_args():
|
|||
help='The shared library path of libchromiumcontent.')
|
||||
parser.add_argument('--libcc_static_library_path', required=False,
|
||||
help='The static library path of libchromiumcontent.')
|
||||
parser.add_argument('--sysroot_url', required=False,
|
||||
help='The URL to download sysroot image.')
|
||||
parser.add_argument('--sysroot_sha1sum', required=False,
|
||||
help='SHA1 hash of the sysroot image tarball.')
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
|
@ -163,11 +167,22 @@ def update_clang():
|
|||
execute_stdout([os.path.join(SOURCE_ROOT, 'script', 'update-clang.sh')])
|
||||
|
||||
|
||||
def download_sysroot(target_arch):
|
||||
if target_arch == 'ia32':
|
||||
target_arch = 'i386'
|
||||
execute_stdout([os.path.join(SOURCE_ROOT, 'script', 'install-sysroot.py'),
|
||||
'--arch', target_arch])
|
||||
def download_sysroot(target_arch, url, sha1sum):
|
||||
if url or target_arch in ['ia32', 'arm']:
|
||||
os.environ['USE_SYSROOT'] = '1'
|
||||
sysroot_script = os.path.join(SOURCE_ROOT, 'script', 'install-sysroot.py')
|
||||
if target_arch == 'ia32':
|
||||
target_arch = 'i386'
|
||||
if target_arch == 'x64':
|
||||
target_arch = 'amd64'
|
||||
args = [
|
||||
'--arch', target_arch
|
||||
]
|
||||
if url:
|
||||
args += ['--url', url]
|
||||
if sha1sum:
|
||||
args += ['--revision', sha1sum]
|
||||
execute_stdout([sysroot_script] + args)
|
||||
|
||||
|
||||
def create_chrome_version_h():
|
||||
|
|
|
@ -134,7 +134,11 @@ def main():
|
|||
print 'Unknown architecture: %s' % target_arch
|
||||
assert(False)
|
||||
|
||||
url = '%s/%s/%s/%s' % (URL_PREFIX, URL_PATH, revision, tarball_filename)
|
||||
if options.url:
|
||||
url = options.url
|
||||
tarball_sha1sum = options.revision
|
||||
else:
|
||||
url = '%s/%s/%s/%s' % (URL_PREFIX, URL_PATH, revision, tarball_filename)
|
||||
|
||||
stamp = os.path.join(sysroot, '.stamp')
|
||||
if os.path.exists(stamp):
|
||||
|
@ -153,11 +157,12 @@ def main():
|
|||
sys.stdout.flush()
|
||||
sys.stderr.flush()
|
||||
subprocess.check_call(['curl', '--fail', '-L', url, '-o', tarball])
|
||||
sha1sum = GetSha1(tarball)
|
||||
if sha1sum != tarball_sha1sum:
|
||||
print 'Tarball sha1sum is wrong.'
|
||||
print 'Expected %s, actual: %s' % (tarball_sha1sum, sha1sum)
|
||||
return 1
|
||||
if tarball_sha1sum:
|
||||
sha1sum = GetSha1(tarball)
|
||||
if sha1sum != tarball_sha1sum:
|
||||
print 'Tarball sha1sum is wrong.'
|
||||
print 'Expected %s, actual: %s' % (tarball_sha1sum, sha1sum)
|
||||
return 1
|
||||
subprocess.check_call(['tar', 'xf', tarball, '-C', sysroot])
|
||||
os.remove(tarball)
|
||||
|
||||
|
@ -173,5 +178,9 @@ if __name__ == '__main__':
|
|||
'Linux builds')
|
||||
parser.add_option('--arch', type='choice', choices=valid_archs,
|
||||
help='Sysroot architecture: %s' % ', '.join(valid_archs))
|
||||
parser.add_option('--url', default=None,
|
||||
help='The URL to download sysroot image.')
|
||||
parser.add_option('--revision', default=None,
|
||||
help='SHA1 hash of the sysroot image tarball.')
|
||||
options, _ = parser.parse_args()
|
||||
sys.exit(main())
|
||||
|
|
|
@ -60,12 +60,18 @@ def run_gyp(target_arch, component):
|
|||
mas_build = 1
|
||||
else:
|
||||
mas_build = 0
|
||||
# Whether to use sysroot image.
|
||||
if os.environ.has_key('USE_SYSROOT'):
|
||||
use_sysroot = 1
|
||||
else:
|
||||
use_sysroot = 0
|
||||
defines = [
|
||||
'-Dlibchromiumcontent_component={0}'.format(component),
|
||||
'-Dtarget_arch={0}'.format(target_arch),
|
||||
'-Dhost_arch={0}'.format(get_host_arch()),
|
||||
'-Dlibrary=static_library',
|
||||
'-Dmas_build={0}'.format(mas_build),
|
||||
'-Duse_sysroot={0}'.format(use_sysroot)
|
||||
]
|
||||
return subprocess.call([python, gyp, '-f', 'ninja', '--depth', '.',
|
||||
'atom.gyp', '-Icommon.gypi'] + defines, env=env)
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
}],
|
||||
|
||||
# Setup sysroot environment.
|
||||
['OS=="linux" and target_arch in ["arm", "ia32"]', {
|
||||
['OS=="linux" and target_arch in ["arm", "ia32", "x64"] and use_sysroot', {
|
||||
'variables': {
|
||||
'conditions': [
|
||||
['target_arch=="arm"', {
|
||||
|
@ -124,6 +124,9 @@
|
|||
['target_arch=="ia32"', {
|
||||
'sysroot': '<(source_root)/vendor/debian_wheezy_i386-sysroot',
|
||||
}],
|
||||
['target_arch=="x64"', {
|
||||
'sysroot': '<(source_root)/vendor/debian_wheezy_amd64-sysroot',
|
||||
}],
|
||||
],
|
||||
},
|
||||
'target_defaults': {
|
||||
|
|
Loading…
Add table
Reference in a new issue