21 #import <sys/sysctl.h>
22 #import <mach/machine.h>
37 NSMutableString* cpu = [[NSMutableString alloc] init];
40 cpu_subtype_t subtype;
42 sysctlbyname(
"hw.cputype", &type, &size, nil, 0);
44 size =
sizeof(subtype);
45 sysctlbyname(
"hw.cpusubtype", &subtype, &size, nil, 0);
47 if (type == CPU_TYPE_X86_64) {
48 [cpu appendString:@"x86_64"];
50 }
else if (type == CPU_TYPE_X86) {
51 [cpu appendString:@"x86"];
54 case CPU_SUBTYPE_X86_64_H:
55 [cpu appendString:@"_64h"];
57 case CPU_SUBTYPE_X86_64_ALL:
58 [cpu appendString:@"_64all"];
60 case CPU_SUBTYPE_X86_ARCH1:
61 [cpu appendString:@"_arch1"];
65 }
else if (type == CPU_TYPE_I386) {
66 [cpu appendString:@"i386"];
68 }
else if (type == CPU_TYPE_ARM64) {
69 [cpu appendString:@"arm64"];
72 case CPU_SUBTYPE_ARM64_V8:
73 [cpu appendString:@"v8"];
76 #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 120100
77 case CPU_SUBTYPE_ARM64E:
78 [cpu appendString:@"e"];
84 }
else if (type == CPU_TYPE_ARM) {
85 [cpu appendString:@"arm"];
88 case CPU_SUBTYPE_ARM_XSCALE:
89 [cpu appendString:@"xscale"];
91 case CPU_SUBTYPE_ARM_V4T:
92 [cpu appendString:@"v4t"];
94 case CPU_SUBTYPE_ARM_V5TEJ:
95 [cpu appendString:@"v5tej"];
97 case CPU_SUBTYPE_ARM_V6:
98 [cpu appendString:@"v6"];
100 case CPU_SUBTYPE_ARM_V6M:
101 [cpu appendString:@"v6m"];
103 case CPU_SUBTYPE_ARM_V7:
104 [cpu appendString:@"v7"];
106 case CPU_SUBTYPE_ARM_V7EM:
107 [cpu appendString:@"v7em"];
109 case CPU_SUBTYPE_ARM_V7F:
110 [cpu appendString:@"v7f"];
112 case CPU_SUBTYPE_ARM_V7K:
113 [cpu appendString:@"v7k"];
115 case CPU_SUBTYPE_ARM_V7M:
116 [cpu appendString:@"v7m"];
118 case CPU_SUBTYPE_ARM_V7S:
119 [cpu appendString:@"v7s"];
121 #ifndef FFMPEG_KIT_LTS
122 case CPU_SUBTYPE_ARM_V8:
123 [cpu appendString:@"v8"];
128 #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 120100
129 }
else if (type == CPU_TYPE_ARM64_32) {
130 [cpu appendString:@"arm64_32"];
133 case CPU_SUBTYPE_ARM64_32_V8:
134 [cpu appendString:@"v8"];
140 [cpu appendString:[NSString stringWithFormat:@"%d", type]];
147 NSMutableString *arch = [[NSMutableString alloc] init];
149 #ifdef FFMPEG_KIT_ARMV7
150 [arch appendString:@"armv7"];
151 #elif FFMPEG_KIT_ARMV7S
152 [arch appendString:@"armv7s"];
153 #elif FFMPEG_KIT_ARM64
154 [arch appendString:@"arm64"];
155 #elif FFMPEG_KIT_ARM64_MAC_CATALYST
156 [arch appendString:@"arm64_mac_catalyst"];
157 #elif FFMPEG_KIT_ARM64_SIMULATOR
158 [arch appendString:@"arm64_simulator"];
159 #elif FFMPEG_KIT_ARM64E
160 [arch appendString:@"arm64e"];
161 #elif FFMPEG_KIT_I386
162 [arch appendString:@"i386"];
163 #elif FFMPEG_KIT_X86_64
164 [arch appendString:@"x86_64"];
165 #elif FFMPEG_KIT_X86_64_MAC_CATALYST
166 [arch appendString:@"x86_64_mac_catalyst"];