Skip to content

Commit 8006e6b

Browse files
committed
Support simulator
1 parent 118e907 commit 8006e6b

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

pkgs/objective_c/hook/build.dart

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,7 @@ void main(List<String> args) async {
4141
final packageName = input.packageName;
4242
final assetPath = input.outputDirectory.resolve(assetName);
4343
final srcDir = Directory.fromUri(input.packageRoot.resolve('src/'));
44-
45-
final arch = input.config.code.targetArchitecture;
46-
final target = '${clangArchName(arch)}-apple-${os.name}';
44+
final target = toTargetTriple(input.config.code);
4745

4846
final cFiles = <String>[];
4947
final mFiles = <String>[];
@@ -148,5 +146,24 @@ String firstLineOfStdout(String cmd, List<String> args) {
148146
.first;
149147
}
150148

151-
String clangArchName(Architecture arch) =>
152-
arch == Architecture.x64 ? 'x86_64' : arch.name;
149+
String toTargetTriple(CodeConfig codeConfig) {
150+
final architecture = codeConfig.targetArchitecture;
151+
if (codeConfig.targetOS == OS.iOS) {
152+
return appleClangIosTargetFlags[architecture]![codeConfig.iOS.targetSdk]!;
153+
}
154+
assert(codeConfig.targetOS == OS.macOS);
155+
return appleClangMacosTargetFlags[architecture]!;
156+
}
157+
158+
const appleClangMacosTargetFlags = {
159+
Architecture.arm64: 'arm64-apple-darwin',
160+
Architecture.x64: 'x86_64-apple-darwin',
161+
};
162+
163+
const appleClangIosTargetFlags = {
164+
Architecture.arm64: {
165+
IOSSdk.iPhoneOS: 'arm64-apple-ios',
166+
IOSSdk.iPhoneSimulator: 'arm64-apple-ios-simulator',
167+
},
168+
Architecture.x64: {IOSSdk.iPhoneSimulator: 'x86_64-apple-ios-simulator'},
169+
};

0 commit comments

Comments
 (0)