Skip to content

Commit 18bff8c

Browse files
[native_toolchain_c] Setup Linux X64 toolchain for non-X64 hosts. (#164)
1 parent d79a7cd commit 18bff8c

File tree

4 files changed

+25
-3
lines changed

4 files changed

+25
-3
lines changed

pkgs/native_toolchain_c/lib/src/cbuilder/compiler_resolver.dart

+4
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ class CompilerResolver {
7474
return aarch64LinuxGnuGcc;
7575
case Architecture.ia32:
7676
return i686LinuxGnuGcc;
77+
case Architecture.x64:
78+
return x86_64LinuxGnuGcc;
7779
case Architecture.riscv64:
7880
return riscv64LinuxGnuGcc;
7981
}
@@ -160,6 +162,8 @@ class CompilerResolver {
160162
return aarch64LinuxGnuGccAr;
161163
case Architecture.ia32:
162164
return i686LinuxGnuGccAr;
165+
case Architecture.x64:
166+
return x86_64LinuxGnuGccAr;
163167
case Architecture.riscv64:
164168
return riscv64LinuxGnuGccAr;
165169
}

pkgs/native_toolchain_c/lib/src/native_toolchain/gcc.dart

+12-3
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ import 'package:native_assets_cli/native_assets_cli.dart';
77
import '../tool/tool.dart';
88
import '../tool/tool_resolver.dart';
99

10-
/// The GNU Compiler Collection.
10+
/// The GNU Compiler Collection for [Architecture.current].
1111
///
1212
/// https://gcc.gnu.org/
1313
final gcc = Tool(name: 'GCC');
1414

15-
/// The GNU GCC archiver.
15+
/// The GNU GCC archiver for [Architecture.current].
1616
final gnuArchiver = Tool(name: 'GNU archiver');
1717

18-
/// The GNU linker.
18+
/// The GNU linker for [Architecture.current].
1919
///
2020
/// https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/ld.html
2121
final gnuLinker = Tool(name: 'GNU linker');
@@ -29,6 +29,15 @@ final i686LinuxGnuGccAr = _gnuArchiver('i686-linux-gnu');
2929
/// [gnuLinker] with [Tool.defaultResolver] for [Architecture.ia32].
3030
final i686LinuxGnuLd = _gnuLinker('i686-linux-gnu');
3131

32+
/// [gcc] with [Tool.defaultResolver] for [Architecture.x64].
33+
final x86_64LinuxGnuGcc = _gcc('x86_64-linux-gnu');
34+
35+
/// [gnuArchiver] with [Tool.defaultResolver] for [Architecture.x64].
36+
final x86_64LinuxGnuGccAr = _gnuArchiver('x86_64-linux-gnu');
37+
38+
/// [gnuLinker] with [Tool.defaultResolver] for [Architecture.x64].
39+
final x86_64LinuxGnuLd = _gnuLinker('x86_64-linux-gnu');
40+
3241
/// [gcc] with [Tool.defaultResolver] for [Architecture.arm].
3342
final armLinuxGnueabihfGcc = _gcc('arm-linux-gnueabihf');
3443

pkgs/native_toolchain_c/test/native_toolchain/gcc_test.dart

+6
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,12 @@ void main() {
6060
i686LinuxGnuLd,
6161
]);
6262

63+
testToolSet('x86_64LinuxGnuGcc', [
64+
x86_64LinuxGnuGcc,
65+
x86_64LinuxGnuGccAr,
66+
x86_64LinuxGnuLd,
67+
]);
68+
6369
testToolSet('riscv64LinuxGnuGcc', [
6470
riscv64LinuxGnuGcc,
6571
riscv64LinuxGnuGccAr,

pkgs/native_toolchain_c/test/native_toolchain/recognizer_test.dart

+3
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ void main() async {
4242
RecognizerTest(riscv64LinuxGnuGcc, CompilerRecognizer.new),
4343
RecognizerTest(riscv64LinuxGnuGccAr, ArchiverRecognizer.new),
4444
RecognizerTest(riscv64LinuxGnuLd, LinkerRecognizer.new),
45+
RecognizerTest(x86_64LinuxGnuGcc, CompilerRecognizer.new),
46+
RecognizerTest(x86_64LinuxGnuGccAr, ArchiverRecognizer.new),
47+
RecognizerTest(x86_64LinuxGnuLd, LinkerRecognizer.new),
4548
];
4649

4750
for (final test in tests) {

0 commit comments

Comments
 (0)