We need separate Build Automation steps for 64bit builds

Because if you have both the 32bit and 64bit CopyFileStep files in the Build Automation, the Build pass executes both of them.

It seems there is an easier way than manually moving the 32bit/64bit “Copy Files steps”.

An example for Windows - in a situation where you want to add 32Bit or 64Bit .dll’s:
Build Settings → Windows → Build: PostBuildSteps

  1. CopyZlib_Setup (Script, Source see below; needs to be above the next two steps)
  2. CopyZlib_32Bit (CopyFile Step, which adds the 32Bit .dll)
  3. CopyZlib_64Bit (CopyFile Step, which adds the 64Bit .dll)

BuildScript “CopyZlib_Setup”:

[code] 'Reset
PropertyValue(“CopyZlib_32Bit.Applies to”) = “3” 'None
PropertyValue(“CopyZlib_64Bit.Applies to”) = “3” 'None

'Enable depending on CurrentBuildTarget
select case CurrentBuildTarget
case 3 'Windows 32Bit
PropertyValue(“CopyZlib_32Bit.Applies to”) = “0” 'Both Debug and Release
case 19 'Windows 64Bit
PropertyValue(“CopyZlib_64Bit.Applies to”) = “0” 'Both Debug and Release
end select[/code][/code]

This will dis/enable the CopyFile Steps depending on the CurrentBuildTarget.
So you can leave both 32Bit/64Bit Copy File Steps in the PostBuild section - and they will get activated depending on the current Build Settings.

Note: This won’t work for 2011r3, as the “Applies to: None” has been introduced somewhen later… It’s there in 2016r3.

[quote=377481:@Jürg Otter]It seems there is an easier way than manually moving the 32bit/64bit “Copy Files steps”.

This will dis/enable the CopyFile Steps depending on the CurrentBuildTarget.
So you can leave both 32Bit/64Bit Copy File Steps in the PostBuild section - and they will get activated depending on the current Build Settings.

Note: This won’t work for 2011r3, as the “Applies to: None” has been introduced somewhen later… It’s there in 2016r3.[/quote]
Jürg - I don’t know why I never received your response above, but thank you for ferreting out this solution. I’ve implemented it in one of my projects that is compiled for both Windows and all three Linux platforms and it has saved my hair (from being pulled out :slight_smile: ).

Here’s my version for all 6 platforms:

[code]’ Original concept by Jürg Otter
’ Reset
PropertyValue(“CopyLinuxSharedLibs32Bit.Applies to”) = “3” 'None
PropertyValue(“CopyLinuxSharedLibs64Bit.Applies to”) = “3” 'None
PropertyValue(“CopyLinuxSharedLibsarm32.Applies to”) = “3” 'None
PropertyValue(“CopyWindowsSharedLibs64Bit.Applies to”) = “3” 'None
PropertyValue(“CopyWindowsSharedLibs32Bit.Applies to”) = “3” 'None
PropertyValue(“CopymacOSSharedLibs64Bit.Applies to”) = “3” 'None
PropertyValue(“CopyLinuxHelpers32Bit.Applies to”) = “3” 'None
PropertyValue(“CopyLinuxHelpers64Bit.Applies to”) = “3” 'None
PropertyValue(“CopyLinuxHelpersARM32.Applies to”) = “3” 'None
PropertyValue(“CopyWindowsHelpers64Bit.Applies to”) = “3” 'None
PropertyValue(“CopyWindowsHelpers32Bit.Applies to”) = “3” 'None
PropertyValue(“CopymacOSHelpers64Bit.Applies to”) = “3” 'None

’ Enable depending on CurrentBuildTarget
select case CurrentBuildTarget
case 16 'macOS 64bit
PropertyValue(“CopymacOSSharedLibs64Bit.Applies to”) = “0”
PropertyValue(“CopyWindowsHelpers64Bit.Applies to”) = “0”
case 4 'Linux 32Bit
PropertyValue(“CopyLinuxSharedLibs32Bit.Applies to”) = “0”
PropertyValue(“CopyLinuxHelpers32Bit.Applies to”) = “0”
case 17 'Linux 64bit
PropertyValue(“CopyLinuxSharedLibs64Bit.Applies to”) = “0”
PropertyValue(“CopyLinuxHelpers64Bit.Applies to”) = “0”
case 18 'Linux ARM32
PropertyValue(“CopyLinuxSharedLibsarm32.Applies to”) = “0”
PropertyValue(“CopyLinuxHelpersARM32.Applies to”) = “0”
case 19 'Windows 64Bit
PropertyValue(“CopyWindowsSharedLibs64Bit.Applies to”) = “0”
PropertyValue(“CopyWindowsHelpers64Bit.Applies to”) = “0”
case 3 'Windows 32Bit
PropertyValue(“CopyWindowsSharedLibs64Bit.Applies to”) = “0”
PropertyValue(“CopyWindowsHelpers64Bit.Applies to”) = “0”
end select[/code]

Crazy reminder:

now that 64 bits is mandatory, isn’t it a good idea to clear the 32 bits compile * (at one time in the future, soon) ?

  • This year’s macOS version stop accepting 32 Bits applications, so… conclude by yourself !

Windows 10 is still available in 32 or 64 bit
RPi’s can run either

Most new distros of linux are 64 bit as are macOS and iOS

Note in my list that I’m only compiling for active platforms - including 64bit macOS. WE also have customers who are still using 32bit Linux and Windows systems.

You’re welcome :wink:

I’m still waiting for Xojo to improve the Build Steps like this:

That would be so much better and allow us fine-grained control of build steps… :wink: