Update architecture support for iOS, default now to ARMV7 as well as ARM64
This commit is contained in:
@@ -141,56 +141,16 @@ class IOSPlatform extends PlatformTarget {
|
||||
|
||||
}
|
||||
|
||||
/*var deployment = Std.parseFloat (iosDeployment);
|
||||
var binaries = iosBinaries;
|
||||
var devices = iosDevices;
|
||||
|
||||
if (binaries != "fat" && binaries != "armv7" && binaries != "armv6") {
|
||||
|
||||
InstallerBase.error ("iOS binaries must be one of: \"fat\", \"armv6\", \"armv7\"");
|
||||
|
||||
}
|
||||
|
||||
if (devices != "iphone" && devices != "ipad" && devices != "universal") {
|
||||
|
||||
InstallerBase.error ("iOS devices must be one of: \"universal\", \"iphone\", \"ipad\"");
|
||||
|
||||
}
|
||||
|
||||
var iphone = (devices == "universal" || devices == "iphone");
|
||||
var ipad = (devices == "universal" || devices == "ipad");
|
||||
|
||||
armv6 = ((iphone && deployment < 5.0 && Std.parseInt (defines.get ("IPHONE_VER")) < 6) || binaries == "armv7");
|
||||
armv7 = (binaries != "armv6" || !armv6 || ipad);
|
||||
|
||||
var valid_archs = new Array <String> ();
|
||||
|
||||
if (armv6) {
|
||||
|
||||
valid_archs.push("armv6");
|
||||
|
||||
}
|
||||
|
||||
if (armv7) {
|
||||
|
||||
valid_archs.push("armv7");
|
||||
|
||||
}
|
||||
|
||||
if (iosCompiler == "llvm" || iosCompiler == "clang") {
|
||||
|
||||
context.OBJC_ARC = true;
|
||||
|
||||
}*/
|
||||
|
||||
var valid_archs = new Array <String> ();
|
||||
var armv6 = false;
|
||||
var armv7 = false;
|
||||
var armv7s = false;
|
||||
var arm64 = false;
|
||||
var architectures = project.architectures;
|
||||
|
||||
if (architectures == null || architectures.length == 0) {
|
||||
|
||||
architectures = [ Architecture.ARMV7 ];
|
||||
architectures = [ Architecture.ARMV7, Architecture.ARM64 ];
|
||||
|
||||
}
|
||||
|
||||
@@ -210,6 +170,8 @@ class IOSPlatform extends PlatformTarget {
|
||||
|
||||
case ARMV6: valid_archs.push ("armv6"); armv6 = true;
|
||||
case ARMV7: valid_archs.push ("armv7"); armv7 = true;
|
||||
case ARMV7S: valid_archs.push ("armv7s"); armv7s = true;
|
||||
case ARM64: valid_archs.push ("arm64"); arm64 = true;
|
||||
default:
|
||||
|
||||
}
|
||||
@@ -225,7 +187,7 @@ class IOSPlatform extends PlatformTarget {
|
||||
|
||||
var requiredCapabilities = [];
|
||||
|
||||
if (armv7 && !armv6) {
|
||||
if (!armv6) {
|
||||
|
||||
requiredCapabilities.push( { name: "armv7", value: true } );
|
||||
|
||||
@@ -234,6 +196,8 @@ class IOSPlatform extends PlatformTarget {
|
||||
context.REQUIRED_CAPABILITY = requiredCapabilities;
|
||||
context.ARMV6 = armv6;
|
||||
context.ARMV7 = armv7;
|
||||
context.ARMV7S = armv7s;
|
||||
context.ARM64 = arm64;
|
||||
context.TARGET_DEVICES = switch (project.config.getString ("ios.device", "universal")) { case "iphone": "1"; case "ipad": "2"; default: "1,2"; }
|
||||
context.DEPLOYMENT = project.config.getInt ("ios.deployment", 5);
|
||||
|
||||
@@ -325,14 +289,18 @@ class IOSPlatform extends PlatformTarget {
|
||||
|
||||
public override function rebuild ():Void {
|
||||
|
||||
var armv6 = (command == "rebuild" || (project.architectures.indexOf (Architecture.ARMV6) > -1 && !project.targetFlags.exists ("simulator")));
|
||||
var armv6 = (project.architectures.indexOf (Architecture.ARMV6) > -1 && !project.targetFlags.exists ("simulator"));
|
||||
var armv7 = (command == "rebuild" || (project.architectures.indexOf (Architecture.ARMV7) > -1 && !project.targetFlags.exists ("simulator")));
|
||||
var armv7s = (project.architectures.indexOf (Architecture.ARMV7S) > -1 && !project.targetFlags.exists ("simulator"));
|
||||
var arm64 = (command == "rebuild" || (project.architectures.indexOf (Architecture.ARM64) > -1 && !project.targetFlags.exists ("simulator")));
|
||||
var simulator = (command == "rebuild" || project.targetFlags.exists ("simulator"));
|
||||
|
||||
var commands = [];
|
||||
|
||||
if (armv6) commands.push ([ "-Diphoneos", "-DHXCPP_CPP11" ]);
|
||||
if (armv7) commands.push ([ "-Diphoneos", "-DHXCPP_CPP11", "-DHXCPP_ARMV7" ]);
|
||||
if (armv7s) commands.push ([ "-Diphoneos", "-DHXCPP_CPP11", "-DHXCPP_ARMV7S" ]);
|
||||
if (arm64) commands.push ([ "-Diphoneos", "-DHXCPP_CPP11", "-DHXCPP_ARM64" ]);
|
||||
if (simulator) commands.push ([ "-Diphonesim", "-DHXCPP_CPP11" ]);
|
||||
|
||||
CPPHelper.rebuild (project, commands);
|
||||
@@ -431,9 +399,9 @@ class IOSPlatform extends PlatformTarget {
|
||||
|
||||
PathHelper.mkdir (projectDirectory + "/lib");
|
||||
|
||||
for (archID in 0...3) {
|
||||
for (archID in 0...5) {
|
||||
|
||||
var arch = [ "armv6", "armv7", "i386" ][archID];
|
||||
var arch = [ "armv6", "armv7", "armv7s", "arm64", "i386" ][archID];
|
||||
|
||||
if (arch == "armv6" && !context.ARMV6)
|
||||
continue;
|
||||
@@ -441,7 +409,13 @@ class IOSPlatform extends PlatformTarget {
|
||||
if (arch == "armv7" && !context.ARMV7)
|
||||
continue;
|
||||
|
||||
var libExt = [ ".iphoneos.a", ".iphoneos-v7.a", ".iphonesim.a" ][archID];
|
||||
if (arch == "armv7s" && !context.ARMV7S)
|
||||
continue;
|
||||
|
||||
if (arch == "arm64" && !context.ARM64)
|
||||
continue;
|
||||
|
||||
var libExt = [ ".iphoneos.a", ".iphoneos-v7.a", ".iphoneos-v7s.a", ".iphoneos-64.a", ".iphonesim.a" ][archID];
|
||||
|
||||
PathHelper.mkdir (projectDirectory + "/lib/" + arch);
|
||||
PathHelper.mkdir (projectDirectory + "/lib/" + arch + "-debug");
|
||||
|
||||
@@ -6,6 +6,8 @@ enum Architecture {
|
||||
ARMV5;
|
||||
ARMV6;
|
||||
ARMV7;
|
||||
ARMV7S;
|
||||
ARM64;
|
||||
X86;
|
||||
X64;
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ class HXProject {
|
||||
|
||||
if (target == Platform.IOS) {
|
||||
|
||||
architectures = [ Architecture.ARMV7 ];
|
||||
architectures = [ Architecture.ARMV7, Architecture.ARM64 ];
|
||||
|
||||
} else if (target == Platform.ANDROID) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user