Skip to content

Commit

Permalink
tools: allow -x86_64 and -x86_32 as command line flags to select thos…
Browse files Browse the repository at this point in the history
…e architectures instead of defaults (closes #1819)

Still supports -32 and -64, though, for backwards compatibility. We could consider removing those in Lime 9.
  • Loading branch information
joshtynjala committed Jul 19, 2024
1 parent 745c178 commit b866632
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 15 deletions.
2 changes: 1 addition & 1 deletion src/lime/tools/IOSHelper.hx
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ class IOSHelper

if (project.targetFlags.exists("simulator"))
{
if (project.targetFlags.exists("i386") || project.targetFlags.exists("32"))
if (project.targetFlags.exists("i386") || project.targetFlags.exists("32") || project.targetFlags.exists("x86_32"))
{
commands.push("-arch");
commands.push("i386");
Expand Down
10 changes: 5 additions & 5 deletions tools/CommandLineTools.hx
Original file line number Diff line number Diff line change
Expand Up @@ -997,12 +997,12 @@ class CommandLineTools
if (isBuildCommand)
{
Log.println(" \x1b[3m(windows|mac|linux|android)\x1b[0m \x1b[1m-static\x1b[0m -- Compile as a static C++ executable");
Log.println(" \x1b[3m(windows|mac|linux)\x1b[0m \x1b[1m-32\x1b[0m -- Compile for 32-bit instead of the OS default");
Log.println(" \x1b[3m(windows|mac|linux)\x1b[0m \x1b[1m-64\x1b[0m -- Compile for 64-bit instead of the OS default");
Log.println(" \x1b[3m(windows|mac|linux)\x1b[0m \x1b[1m-x86_32\x1b[0m -- Compile for x86_32 instead of the OS default");
Log.println(" \x1b[3m(windows|mac|linux)\x1b[0m \x1b[1m-x86_64\x1b[0m -- Compile for x86_64 instead of the OS default");
Log.println(" \x1b[3m(ios|android)\x1b[0m \x1b[1m-armv6\x1b[0m -- Compile for ARMv6 instead of the OS defaults");
Log.println(" \x1b[3m(ios|android)\x1b[0m \x1b[1m-armv7\x1b[0m -- Compile for ARMv7 instead of the OS defaults");
Log.println(" \x1b[3m(ios|android)\x1b[0m \x1b[1m-armv7s\x1b[0m -- Compile for ARMv7s instead of the OS defaults");
Log.println(" \x1b[3m(ios)\x1b[0m \x1b[1m-arm64\x1b[0m -- Compile for ARM64 instead of the OS defaults");
Log.println(" \x1b[3m(mac|ios|android)\x1b[0m \x1b[1m-arm64\x1b[0m -- Compile for ARM64 instead of the OS defaults");
Log.println(" \x1b[3m(ios)\x1b[0m \x1b[1m-nosign\x1b[0m -- Compile executable, but skip codesigning");
}

Expand Down Expand Up @@ -2245,11 +2245,11 @@ class CommandLineTools
}
catch (e:Dynamic) {}
}
else if (argument == "-64")
else if (argument == "-64" || argument == "-x86_64")
{
overrides.architectures.push(Architecture.X64);
}
else if (argument == "-32")
else if (argument == "-32" || argument == "-x86_32")
{
overrides.architectures.push(Architecture.X86);
}
Expand Down
6 changes: 3 additions & 3 deletions tools/platforms/LinuxPlatform.hx
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ class LinuxPlatform extends PlatformTarget

for (architecture in project.architectures)
{
if (!targetFlags.exists("32") && architecture == Architecture.X64)
if (!targetFlags.exists("32") && !targetFlags.exists("x86_32") && architecture == Architecture.X64)
{
is64 = true;
}
Expand Down Expand Up @@ -507,12 +507,12 @@ class LinuxPlatform extends PlatformTarget
}
else
{
if (!targetFlags.exists("32") && System.hostArchitecture == X64)
if (!targetFlags.exists("32") && !targetFlags.exists("x86_32") && System.hostArchitecture == X64)
{
commands.push(["-Dlinux", "-DHXCPP_M64"]);
}

if (!targetFlags.exists("64") && (command == "rebuild" || System.hostArchitecture == X86))
if (!targetFlags.exists("64") && !targetFlags.exists("x86_64") && (command == "rebuild" || System.hostArchitecture == X86))
{
commands.push(["-Dlinux", "-DHXCPP_M32"]);
}
Expand Down
4 changes: 2 additions & 2 deletions tools/platforms/MacPlatform.hx
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ class MacPlatform extends PlatformTarget
{
commands.push(["-Dmac", "-DHXCPP_CLANG", "-DHXCPP_ARM64"]);
}
else if (!targetFlags.exists("32"))
else if (!targetFlags.exists("32") && !targetFlags.exists("x86_32"))
{
commands.push(["-Dmac", "-DHXCPP_CLANG", "-DHXCPP_M64"]);
}
Expand All @@ -443,7 +443,7 @@ class MacPlatform extends PlatformTarget
// hashlink doesn't support arm64 macs yet
commands.push(["-Dmac", "-DHXCPP_CLANG", "-DHXCPP_ARCH=x86_64", "-Dhashlink"]);
}
else if (targetFlags.exists("64"))
else if (targetFlags.exists("64") || targetFlags.exists("x86_64"))
{
commands.push(["-Dmac", "-DHXCPP_CLANG", "-DHXCPP_ARCH=x86_64"]);
}
Expand Down
9 changes: 5 additions & 4 deletions tools/platforms/WindowsPlatform.hx
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ class WindowsPlatform extends PlatformTarget
else if (project.targetFlags.exists("hl") || targetFlags.exists("hlc"))
{
targetType = "hl";
is64 = !project.flags.exists("32");
is64 = !project.flags.exists("32") && !project.flags.exists("x86_32");
}
else if (project.targetFlags.exists("cppia"))
{
Expand Down Expand Up @@ -737,7 +737,8 @@ class WindowsPlatform extends PlatformTarget
if (targetType == "hl")
{
// default to 64 bit, just like upstream Hashlink releases
if (!targetFlags.exists("32") && (System.hostArchitecture == X64 || targetFlags.exists("64")))
if (!targetFlags.exists("32") && !targetFlags.exists("x86_32")
&& (System.hostArchitecture == X64 || targetFlags.exists("64") || targetFlags.exists("x86_64")))
{
commands.push(["-Dwindows", "-DHXCPP_M64", "-Dhashlink"]);
}
Expand All @@ -748,7 +749,7 @@ class WindowsPlatform extends PlatformTarget
}
else
{
if (!targetFlags.exists("64")
if (!targetFlags.exists("64") && !targetFlags.exists("x86_64")
&& (command == "rebuild" || System.hostArchitecture == X86 || (targetType != "cpp" && targetType != "winrt")))
{
if (targetType == "winrt")
Expand All @@ -765,7 +766,7 @@ class WindowsPlatform extends PlatformTarget
// as previous Windows builds. For now, force -64 to be done last
// so that it can be debugged in a default "rebuild"

if (!targetFlags.exists("32")
if (!targetFlags.exists("32") && !targetFlags.exists("x86_32")
&& System.hostArchitecture == X64
&& (command != "rebuild" || targetType == "cpp" || targetType == "winrt"))
{
Expand Down

0 comments on commit b866632

Please sign in to comment.