config method
Implementation
Future<void> config() async {
final (os, arch) = _target(
codeConfig.targetOS,
codeConfig.targetArchitecture,
);
bool isCross =
!(codeConfig.targetOS == OS.current &&
codeConfig.targetArchitecture == Architecture.current);
return call([
'f',
'-P',
'.',
'-v',
'--plat=$os',
'--arch=$arch',
// dart format off
...switch (codeConfig.targetOS) {
.android => () {
final ndk = _androidTool.ndk;
final bin = _androidTool.bin;
return [
'--toolchain=ndk',
if (ndk != null) '--ndk=$ndk',
if (bin != null) '--bin=$bin',
];
}(),
.iOS => [
if (codeConfig.iOS.targetSdk == .iPhoneSimulator)
'--appledev=simulator',
],
// desktop cross compile
_ when isCross => [
'--toolchain=zigcc', // it's zigcc instead of zig !!!
],
_ => [],
},
// dart format on
'--mode=release',
'--kind=$kind',
'-y',
]);
}