Skip to content

Commit

Permalink
Cross-compile for Linux ARM64
Browse files Browse the repository at this point in the history
  • Loading branch information
Glavo committed Feb 25, 2023
1 parent f7e419b commit 38f082d
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 6 deletions.
16 changes: 14 additions & 2 deletions script/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ def main():
build_type = common.build_type()
machine = common.machine()
system = common.system()
ndk = common.ndk()
ndk = common.ndk()

if build_type == 'Debug':
args = ['is_debug=true']
Expand Down Expand Up @@ -52,8 +52,20 @@ def main():
# 'skia_enable_gpu=true',
# 'skia_use_gl=true',
'extra_cflags_cc=["-frtti"]',
'cxx="g++-9"',
]

if (machine == 'arm64') and (machine != common.native_machine()):
args += [
'cc="aarch64-linux-gnu-gcc-9"',
'cxx="aarch64-linux-gnu-g++-9"',
'extra_cflags=["-I/usr/aarch64-linux-gnu/include"]'
]
else:
args += [
'cc="gcc-9"',
'cxx="g++-9"',
]

elif 'windows' == system:
args += [
'skia_use_system_freetype2=false',
Expand Down
10 changes: 6 additions & 4 deletions script/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,18 @@ def system():
(args, _) = parser.parse_known_args()
return args.system if args.system else {'Darwin': 'macos', 'Linux': 'linux', 'Windows': 'windows'}[platform.system()]

def native_machine():
return {'AMD64': 'x64', 'x86_64': 'x64', 'arm64': 'arm64'}[platform.machine()]

def machine():
parser = create_parser()
(args, _) = parser.parse_known_args()
return args.machine if args.machine else {'AMD64': 'x64', 'x86_64': 'x64', 'arm64': 'arm64', 'aarch64': 'arm64'}[platform.machine()]
return args.machine if args.machine else native_machine()

def version():
parser = create_parser()
args = parser.parse_args()

if args.version:
return args.version

Expand All @@ -44,7 +47,7 @@ def classifier():
parser = create_parser()
(args, _) = parser.parse_known_args()
return '-' + args.classifier if args.classifier else ''

def github_headers():
if os.environ.get('GITHUB_BASIC'):
auth = 'Basic ' + base64.b64encode(os.environ.get('GITHUB_BASIC').encode('utf-8')).decode('utf-8')
Expand All @@ -59,4 +62,3 @@ def ndk():
parser = create_parser()
(args, _) = parser.parse_known_args()
return args.ndk if args.ndk else ''

0 comments on commit 38f082d

Please sign in to comment.