Merge pull request #10219 from HAMIDx9/master

Add arm64 build support
This commit is contained in:
Cheng Zhao 2017-08-22 17:02:23 +09:00 committed by GitHub
commit 1f604c0826
9 changed files with 1036 additions and 184 deletions

View file

@ -22,6 +22,8 @@ matrix:
env: TARGET_ARCH=arm env: TARGET_ARCH=arm
- os: linux - os: linux
env: TARGET_ARCH=ia32 env: TARGET_ARCH=ia32
- os: linux
env: TARGET_ARCH=arm64
allow_failures: allow_failures:
- os: osx - os: osx

View file

@ -34,6 +34,14 @@ LINUX_DEPS_ARM = [
'gcc-4.8-multilib-arm-linux-gnueabihf', 'gcc-4.8-multilib-arm-linux-gnueabihf',
] ]
LINUX_DEPS_ARM64 = [
'binutils-aarch64-linux-gnu',
'libc6-dev-arm64-cross',
'linux-libc-dev-arm64-cross',
'g++-4.8-aarch64-linux-gnu',
'gcc-4.8-aarch64-linux-gnu',
'gcc-aarch64-linux-gnu',
]
def main(): def main():
os.environ['CI'] = '1' os.environ['CI'] = '1'
@ -56,6 +64,8 @@ def main():
deps = LINUX_DEPS deps = LINUX_DEPS
if target_arch == 'arm': if target_arch == 'arm':
deps += LINUX_DEPS_ARM deps += LINUX_DEPS_ARM
elif target_arch == 'arm64':
deps += LINUX_DEPS_ARM64
else: else:
deps += LINUX_DEPS_NO_ARM deps += LINUX_DEPS_NO_ARM
execute(['sudo', 'apt-get', 'install'] + deps) execute(['sudo', 'apt-get', 'install'] + deps)

View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
export TARGET_ARCH=arm64
script/cibuild-linux

View file

@ -208,6 +208,8 @@ def strip_binaries():
def strip_binary(binary_path): def strip_binary(binary_path):
if get_target_arch() == 'arm': if get_target_arch() == 'arm':
strip = 'arm-linux-gnueabihf-strip' strip = 'arm-linux-gnueabihf-strip'
elif get_target_arch() == 'arm64':
strip = 'aarch64-linux-gnu-strip'
else: else:
strip = 'strip' strip = 'strip'
execute([strip, binary_path]) execute([strip, binary_path])

View file

@ -67,6 +67,8 @@ function assetsForVersion (version) {
'electron-{{VERSION}}-darwin-x64.zip', 'electron-{{VERSION}}-darwin-x64.zip',
'electron-{{VERSION}}-linux-arm-symbols.zip', 'electron-{{VERSION}}-linux-arm-symbols.zip',
'electron-{{VERSION}}-linux-arm.zip', 'electron-{{VERSION}}-linux-arm.zip',
'electron-{{VERSION}}-linux-arm64-symbols.zip',
'electron-{{VERSION}}-linux-arm64.zip',
'electron-{{VERSION}}-linux-armv7l-symbols.zip', 'electron-{{VERSION}}-linux-armv7l-symbols.zip',
'electron-{{VERSION}}-linux-armv7l.zip', 'electron-{{VERSION}}-linux-armv7l.zip',
'electron-{{VERSION}}-linux-ia32-symbols.zip', 'electron-{{VERSION}}-linux-ia32-symbols.zip',
@ -86,6 +88,7 @@ function assetsForVersion (version) {
'electron.d.ts', 'electron.d.ts',
'ffmpeg-{{VERSION}}-darwin-x64.zip', 'ffmpeg-{{VERSION}}-darwin-x64.zip',
'ffmpeg-{{VERSION}}-linux-arm.zip', 'ffmpeg-{{VERSION}}-linux-arm.zip',
'ffmpeg-{{VERSION}}-linux-arm64.zip',
'ffmpeg-{{VERSION}}-linux-armv7l.zip', 'ffmpeg-{{VERSION}}-linux-armv7l.zip',
'ffmpeg-{{VERSION}}-linux-ia32.zip', 'ffmpeg-{{VERSION}}-linux-ia32.zip',
'ffmpeg-{{VERSION}}-linux-x64.zip', 'ffmpeg-{{VERSION}}-linux-x64.zip',

View file

@ -124,7 +124,7 @@ def run_python_script(script, *args):
def get_electron_build_version(): def get_electron_build_version():
if get_target_arch() == 'arm' or os.environ.has_key('CI'): if get_target_arch().startswith('arm') or os.environ.has_key('CI'):
# In CI we just build as told. # In CI we just build as told.
return ELECTRON_VERSION return ELECTRON_VERSION
if PLATFORM == 'darwin': if PLATFORM == 'darwin':

View file

@ -140,7 +140,7 @@
}], }],
# Setup sysroot environment. # Setup sysroot environment.
['OS=="linux" and target_arch in ["arm", "ia32", "x64"]', { ['OS=="linux" and target_arch in ["arm", "ia32", "x64", "arm64"]', {
'target_defaults': { 'target_defaults': {
'target_conditions': [ 'target_conditions': [
['_toolset=="target"', { ['_toolset=="target"', {
@ -259,6 +259,23 @@
], ],
}], }],
], ],
}], # target_arch=="arm64" and _toolset=="target"
['target_arch=="arm64" and _toolset=="target"', {
'conditions': [
['clang==0', {
'cflags_cc': [
'-Wno-abi',
],
}],
['clang==1 and arm_arch!=""', {
'cflags': [
'-target aarch64-linux-gnu',
],
'ldflags': [
'-target aarch64-linux-gnu',
],
}],
],
}], # target_arch=="arm" and _toolset=="target" }], # target_arch=="arm" and _toolset=="target"
], ],
}, },

2
vendor/breakpad vendored

@ -1 +1 @@
Subproject commit c566c50d81f7b1edeaee9f11f5d07bda858d6b64 Subproject commit 82f0452e6b687b3c1e14e08d172b2f3fb79ae91a

File diff suppressed because it is too large Load diff