[ci] use env for format and support arm64 hosts (flutter/engine#56268)
Fixes running x64 binaries on arm64 hosts, this fixes systems like Raspberry Pi's, Apple Silicon, and Ampere. Before, I would get something like: ``` Checking GN formatting... Completed checking 0 GN files with no formatting problems. Checking Java formatting... No Java files with changes, skipping Java format check. Checking Python formatting... All python files formatted correctly. Checking for trailing whitespace on 1 source file... No trailing whitespace found. No header files with changes, skipping header guard check. Checking C++/ObjC/Shader formatting... ERROR: Formatter command '/home/ross/flutter-engine/src/flutter/buildtools/linux-x64/clang/bin/clang-format --style=file shell/platform/linux/fl_application_test.cc' failed with exit code 255. Command output follows: qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory Completed checking 0 C++/ObjC/Shader files with no formatting problems ``` Now it just works, I also changed the shell script to use env since `/bin/bash` doesn't exist on NixOS so using env is a more portable solution. *List which issues are fixed by this PR. You must list at least one issue.* *If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].* [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
This commit is contained in:
parent
9f76c9d47e
commit
3ca2049252
@ -6,6 +6,7 @@
|
|||||||
//
|
//
|
||||||
// Run with --help for usage.
|
// Run with --help for usage.
|
||||||
|
|
||||||
|
import 'dart:ffi';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:args/args.dart';
|
import 'package:args/args.dart';
|
||||||
@ -312,17 +313,15 @@ class ClangFormatChecker extends FormatChecker {
|
|||||||
super.allFiles,
|
super.allFiles,
|
||||||
super.messageCallback,
|
super.messageCallback,
|
||||||
}) {
|
}) {
|
||||||
/*late*/ String clangOs;
|
final clangOs = switch (Abi.current()) {
|
||||||
if (Platform.isLinux) {
|
Abi.linuxArm64 => 'linux-arm64',
|
||||||
clangOs = 'linux-x64';
|
Abi.linuxX64 => 'linux-x64',
|
||||||
} else if (Platform.isMacOS) {
|
Abi.macosArm64 => 'mac-arm64',
|
||||||
clangOs = 'mac-x64';
|
Abi.macosX64 => 'mac-x64',
|
||||||
} else if (Platform.isWindows) {
|
Abi.windowsX64 => 'windows-x64',
|
||||||
clangOs = 'windows-x64';
|
(_) => throw FormattingException(
|
||||||
} else {
|
"Unknown operating system: don't know how to run clang-format here.")
|
||||||
throw FormattingException(
|
};
|
||||||
"Unknown operating system: don't know how to run clang-format here.");
|
|
||||||
}
|
|
||||||
clangFormat = File(
|
clangFormat = File(
|
||||||
path.join(
|
path.join(
|
||||||
srcDir.absolute.path,
|
srcDir.absolute.path,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# Copyright 2013 The Flutter Authors. All rights reserved.
|
# Copyright 2013 The Flutter Authors. All rights reserved.
|
||||||
# Use of this source code is governed by a BSD-style license that can be
|
# Use of this source code is governed by a BSD-style license that can be
|
||||||
|
Loading…
x
Reference in New Issue
Block a user