Windows 64 ARM version

Hi!

Is it possible to have a Windows 64 ARM version for debugger?

Another thing related…

Be able to compile multiple versions of apps all at once…

Like Linux 64 Intel AND Linux 64 ARM…?

Best regards,

Alex

Alexandre, you can already compile multiple targets at once. All you need to do is select the build targets in the build settings, at the bottom of the navigator. I regularly build both for Windows and Linux.

As for the feature request, you will have better success creating it in Issues. The same place you would report a bug.

Hope this helps.

Yes, but you need to run a XojoScript to do this. I have one that runs every platform (macOS, Windows and Linux) and environment (desktop, web and mobile) in Aggressive mode for multiple different related apps, then sets the Aggressive mode back off when finished. It runs for over 30 minutes.

1 Like

any chance to give us your example?

:wink:

The scripts are very simple. Here’s one of mine. The constant replacements allow me to load protected values into the project without exposing them to the public. You don’t need those. The rest sets the optimization level and then builds each of the Windows versions I need.

You just need to look up the BuildApp docs for the right values to use.

2 Likes

It’s a bit long, but here it is:

'docs.xojo.com/UserGuide:IDE_Scripting
'open Xojo windows NOT full-screen, else Xojo will crash!!!
'*** make sure all apps are built BEFORE running else we get a NilObjectException!!!! ***

'Const kOSX32 = 7
Const kOSX64 = 16
Const kOSXUniversal64 = 9
Const kOSXARM64 = 24

Const kWin32 = 3
Const kWin64 = 19
Const kWin64ARM = 25

Const kLin32 = 4
Const kLin64 = 17
Const kLin32ARM = 18 'Raspberry Pi 32-bit
'Const kLin64ARM = ?? 'Raspberry Pi 64-bit

Const kiOSSimulator64 = 13
Const kiOS64 = 14

Const kXojoCloud32 = 12

Var appNames() As String

appNames.Add("BamBam Billing")
appNames.Add("BamBam Billing Web")
'appNames.Add("BamBam Billing Mobile")

appNames.Add("BamBam Background")
appNames.Add("BamBam Cloud Help")
appNames.Add("BamBam Cloud Web")

'appNames.Add("BamBam Cloud HTMLEditor")

Var isCompileAppStoreApp As Boolean = False
Var isCompileMacOS As Boolean = True
Var isCompileWindows As Boolean = True
Var isCompileLinux As Boolean = True
Var isCompileIOs As Boolean = False
Var isCompileRPi As Boolean = True
Var isCompileAndroid As Boolean = False

Var isCompile32Bit As Boolean = False
Var isCompile64Bit As Boolean = True
Var isCompileMVV As Boolean = False

Var ApplicationName As String = "BamBamBilling"
Var CubeitzFolder As String = "0000033439"
Var OptimizationLevel As String = "6" 'Default = 0, Aggressive = 4, Moderate = 6
Var SourceFolder As String = "~/Documents/CubeiTz\ Decrypted/" + CubeitzFolder + "/Builds\ -\ BamBam\ Billing"
Var DestinationFolder As String = "~/Documents/CubeiTz\ Decrypted/" + CubeitzFolder + "/on\ the\ server/"

Var TestCommand As String = "mv ~/Documents/CubeiTz\ Decrypted/0000033439/Builds\ -\ BamBam\ Background/Windows\ 64\ bit/BamBam\ Background ~/Documents/CubeiTz\ Decrypted/0000033439/on\ the\ server/BamBam\ Background/"

For tempInt As Integer = 0 To appNames.LastIndex
  Var BaseName As String = appNames(tempInt)
  Var path As String
  Var result As String
  Var DestinationPath As String
  
  SelectWindow BaseName 'ensure it is at the front!
  
  'Set the ShortVersion to match the version numbers
  PropertyValue("App.ShortVersion") = PropertyValue("App.MajorVersion") + "." + PropertyValue("App.MinorVersion") + "." + PropertyValue("App.BugVersion") '+ " (" + PropertyValue("App.NonReleaseVersion") + ")"
  PropertyValue("App.OptimizationLevel") = OptimizationLevel
  
  Select Case BaseName
  Case "BamBam Billing"
    'macOS AppStore
    If isCompileMacOS And isCompile64Bit And isCompileAppStoreApp Then
      PropertyValue("CommonSecure.isAppStoreApp") = "True"
      DestinationPath = DestinationFolder + ApplicationName + "MacAppStore/"
      result = DoShellCommand("sudo rmdir -R " + DestinationPath)
      path = BuildApp(kOSXUniversal64, False) 'comment until Universal plugins are compiled, else we get NilObjectException and have to force quit!
      'result = DoShellCommand("cp -R " + SourceFolder + "/macOS\ Universal " + DestinationFolder + ApplicationName + "Mac\ AppStore/")
      result = DoShellCommand("mv " + SourceFolder + "/macOS\ Universal " + DestinationPath)
    End If
    
    'macOS Website
    If isCompileMacOS And isCompile64Bit Then
      PropertyValue("CommonSecure.isAppStoreApp") = "False"
      DestinationPath = "/macOS\ Universal " + DestinationFolder + ApplicationName + "Mac/"
      'result = DoShellCommand("sudo rmdir -R " + SourceFolder + DestinationPath)
      path = BuildApp(kOSXUniversal64, False) 'comment until Universal plugins are compiled, else we get NilObjectException and have to force quit!
      result = DoShellCommand("mv " + SourceFolder + DestinationPath)
    End If
    
    'Windows 64-bit AppStore
    If isCompileWindows And isCompile64Bit And isCompileAppStoreApp Then 'Windows 64-bit crashes Xojo if run after 32-bit or before or even before Universal, so run separately!
      PropertyValue("CommonSecure.isAppStoreApp") = "True"
      DestinationPath = "/Windows\ 64\ bit/BamBam\ Billing " + DestinationFolder + ApplicationName + "Win64AppStore/"
      'result = DoShellCommand("sudo rmdir -R " + SourceFolder + DestinationPath)
      path = BuildApp(kWin64, False)
      result = DoShellCommand("mv " + SourceFolder + DestinationPath)
    End If
    
    'Windows 64-bit Website
    If isCompileWindows And isCompile64Bit Then
      PropertyValue("CommonSecure.isAppStoreApp") = "False"
      DestinationPath = "/Windows\ 64\ bit/BamBam\ Billing " + DestinationFolder + ApplicationName + "Win64/"
      'result = DoShellCommand("sudo rmdir -R " + SourceFolder + DestinationPath)
      path = BuildApp(kWin64, False)
      result = DoShellCommand("mv " + SourceFolder + DestinationPath)
    End If
    
    'Windows 32-bit Website
    If isCompileWindows And isCompile32Bit Then
      PropertyValue("CommonSecure.isAppStoreApp") = "False"
      DestinationPath = "/Windows/BamBam\ Billing " + DestinationFolder + ApplicationName + "Win32/"
      'result = DoShellCommand("sudo rmdir -R " + SourceFolder + DestinationPath)
      path = BuildApp(kWin32, False)
      result = DoShellCommand("mv " + SourceFolder + DestinationPath)
    End If
    
    'Windows 64-bit ARM AppStore
    If isCompileWindows And isCompile64Bit And isCompileAppStoreApp Then
      PropertyValue("CommonSecure.isAppStoreApp") = "True"
      DestinationPath = "/Windows\ ARM\ 64\ bit/BamBam\ Billing " + DestinationFolder + ApplicationName + "Win64ARMAppStore/"
      'result = DoShellCommand("sudo rmdir -R " + SourceFolder + DestinationPath)
      path = BuildApp(kWin64ARM, False)
      result = DoShellCommand("mv " + SourceFolder + DestinationPath)
    End If
    
    'Windows 64-bit ARM Website
    If isCompileWindows And isCompile64Bit Then
      PropertyValue("CommonSecure.isAppStoreApp") = "False"
      DestinationPath = "/Windows\ ARM\ 64\ bit/BamBam\ Billing " + DestinationFolder + ApplicationName + "Win64ARM/"
      'result = DoShellCommand("sudo rmdir -R " + SourceFolder + DestinationPath)
      path = BuildApp(kWin64ARM, False)
      result = DoShellCommand("mv " + SourceFolder + DestinationPath)
    End If
    
    'Linux 32-bit Website
    If isCompileLinux And isCompile32Bit Then
      PropertyValue("CommonSecure.isAppStoreApp") = "False"
      DestinationPath = "/Linux/BamBam\ Billing " + DestinationFolder + ApplicationName + "Linux32/"
      result = DoShellCommand("rmdir -R " + SourceFolder + DestinationPath)
      path = BuildApp(kLin32, False)
      result = DoShellCommand("mv " + SourceFolder + DestinationPath)
      result = DoShellCommand("zip -r " + ApplicationName + "Linux32.zip" + DestinationPath)
      'result = DoShellCommand("sudo rmdir -R " + SourceFolder + DestinationPath)
    End If
    
    'Linux 64-bit Website
    If isCompileLinux And isCompile64Bit Then
      PropertyValue("CommonSecure.isAppStoreApp") = "False"
      DestinationPath = "/Linux\ 64\ bit/BamBam\ Billing " + DestinationFolder + ApplicationName + "Linux64/"
      result = DoShellCommand("rmdir -R " + SourceFolder + DestinationPath)
      path = BuildApp(kLin64, False)
      result = DoShellCommand("mv " + SourceFolder + DestinationPath)
      result = DoShellCommand("zip -r " + ApplicationName + "Linux64.zip" + DestinationPath)
      'result = DoShellCommand("sudo rmdir -R " + SourceFolder + DestinationPath)
    End If
    
    'RaspberryPi 32-bit Website
    If isCompileRPi And isCompile32Bit Then
      PropertyValue("CommonSecure.isAppStoreApp") = "False"
      DestinationPath = "/Linux\ ARM/BamBam\ Billing " + DestinationFolder + ApplicationName + "RPi32/"
      result = DoShellCommand("rmdir -R " + SourceFolder + DestinationPath)
      path = BuildApp(kLin32ARM, False)
      result = DoShellCommand("mv " + SourceFolder + DestinationPath)
      result = DoShellCommand("zip -r " + ApplicationName + "RPi32.zip" + DestinationPath)
      'result = DoShellCommand("sudo rmdir -R " + SourceFolder + DestinationPath)
    End If
    
    'RaspberryPi 64-bit Website
    'If isCompileRPi And isCompile64Bit Then 'kLin64ARM doesn't exist yet!
    'PropertyValue("CommonSecure.isAppStoreApp") = "False"
    'DestinationPath = "/Linux\ ARM/BamBam\ Billing " + DestinationFolder + ApplicationName + "RPi32/"
    'result = DoShellCommand("rmdir -R " + SourceFolder + DestinationPath)
    'path = BuildApp(kLin64ARM, False)
    'result = DoShellCommand("mv " + SourceFolder + DestinationPath)
    'result = DoShellCommand("zip -r " + ApplicationName + "RPi64.zip" + DestinationPath)
    ''result = DoShellCommand("sudo rmdir -R " + SourceFolder + DestinationPath)
    'End If
    
  Case "BamBam Billing Web"
    PropertyValue("CommonSecure.isAppStoreApp") = "False"
    PropertyValue("App.isAllowCreateServerKey") = "True"
    
    'macOS 64-bit Website
    If isCompileMacOS And isCompile64Bit Then
      path = BuildApp(kOSXUniversal64, False) 'comment until Universal plugins are compiled, else we get NilObjectException and have to force quit!
      'result = DoShellCommand("mv " + SourceFolder + "\ Web/macOS\ Universal/BamBam\ Billing\ Web " + DestinationFolder + ApplicationName + "WebMac64/")
      result = DoShellCommand("mv " + SourceFolder + "\ Web/macOS\ Universal " + DestinationFolder + ApplicationName + "WebMac64/")
    End If
    
    'Windows 64-bit Website (BamBam)
    If isCompileWindows And isCompile64Bit Then
      PropertyValue("App.isAllowCreateServerKey") = "False"
      path = BuildApp(kWin64, False)
      result = DoShellCommand("mv " + SourceFolder + "\ Web/Windows\ 64\ bit/BamBam\ Billing\ Web " + DestinationFolder + ApplicationName + "WebWin64BamBam/")
      PropertyValue("App.isAllowCreateServerKey") = "True"
    End If
    
    'Windows 64-bit Website (User)
    If isCompileWindows And isCompile64Bit Then
      path = BuildApp(kWin64, False)
      result = DoShellCommand("mv " + SourceFolder + "\ Web/Windows\ 64\ bit/BamBam\ Billing\ Web " + DestinationFolder + ApplicationName + "WebWin64/")
    End If
    
    'Windows 64-bit ARM Website
    If isCompileWindows And isCompile64Bit Then
      path = BuildApp(kWin64ARM, False)
      result = DoShellCommand("mv " + SourceFolder + "\ Web/Windows\ ARM\ 64\ bit/BamBam\ Billing\ Web " + DestinationFolder + ApplicationName + "WebWin64ARM/")
    End If
    
    'Linux 64-bit Website
    If isCompileLinux And isCompile64Bit Then
      path = BuildApp(kLin64, False)
      result = DoShellCommand("mv " + SourceFolder + "\ Web/Linux\ 64\ bit/BamBam\ Billing\ Web " + DestinationFolder + ApplicationName + "WebLinux64/")
    End If
    
    'RaspberryPi 32-bit Website
    If isCompileRPi And isCompile32Bit Then
      path = BuildApp(kLin32ARM, False)
      result = DoShellCommand("mv " + SourceFolder + "\ Web/Linux\ ARM/BamBam\ Billing\ Web " + DestinationFolder + ApplicationName + "WebRPi32/")
    End If
    
    'RaspberryPi 64-bit Website
    'If isCompileRPi And isCompile64Bit Then
    'path = BuildApp(kLin64ARM, False)
    'result = DoShellCommand("mv " + SourceFolder + "\ Web/Linux\ ARM/BamBam\ Billing\ Web " + DestinationFolder + ApplicationName + "WebRPi64/")
    'End If
    
  Case "BamBam Billing Mobile"
    'iOS 64-bit AppStore
    If isCompileIOs And isCompile64Bit Then
      path = BuildApp(kiOS64, False)
      result = DoShellCommand("mv " + SourceFolder + "\ Mobile/iOS " + DestinationFolder + ApplicationName + "MobileiOS/")
    End If
    
    'Android 64-bit AppStore
    If isCompileAndroid And isCompile64Bit Then
      'path = BuildApp(kAndroid64, False)
      'result = DoShellCommand("mv " + SourceFolder + "\ Mobile/Android ~/Documents/CubeiTz\ Decrypted/" + CubeitzFolder + "/on\ the\ server/")
    End If
    
  Case "BamBam Background"
    If isCompileWindows And isCompile64Bit Then
      'DestinationPath = "/Windows\ 64\ bit/BamBam\ Background " + DestinationFolder + "BamBam\ Background/"
      path = BuildApp(kWin64, False)
      result = DoShellCommand("mv ~/Documents/CubeiTz\ Decrypted/0000033439/Builds\ -\ BamBam\ Background/Windows\ 64\ bit/BamBam\ Background ~/Documents/CubeiTz\ Decrypted/0000033439/on\ the\ server/BamBam\ Background/")
    End If
    
  Case "BamBam Cloud Help"
    If isCompileWindows And isCompile64Bit Then
      'DestinationPath = "/Windows\ 64\ bit/BamBam\ Cloud\ Help " + DestinationFolder + "BamBam\ Cloud\ Help/"
      path = BuildApp(kWin64, False)
      result = DoShellCommand("mv ~/Documents/CubeiTz\ Decrypted/0000033439/Builds\ -\ BamBam\ Cloud\ Help/Windows\ 64\ bit/BamBam\ Cloud\ Help ~/Documents/CubeiTz\ Decrypted/0000033439/on\ the\ server/BamBam\ Cloud\ Help/")
    End If
    
  Case "BamBam Cloud HTMLEditor"
    If isCompileWindows And isCompile64Bit Then
      'DestinationPath = "/Windows\ 64\ bit/BamBam\ Cloud\ HTMLEditor " + DestinationFolder + "BamBam\ Cloud\ HTMLEditor/"
      path = BuildApp(kWin64, False)
      result = DoShellCommand("mv ~/Documents/CubeiTz\ Decrypted/0000033439/Builds\ -\ BamBam\ Cloud\ HTMLEditor/Windows\ 64\ bit/BamBam\ Cloud\ HTMLEditor ~/Documents/CubeiTz\ Decrypted/0000033439/on\ the\ server/BamBam\ Cloud\ HTMLEditor/")
    End If
    
  Case "BamBam Cloud Web"
    If isCompileWindows And isCompile64Bit Then
      'DestinationPath = "/Windows\ 64\ bit/BamBam\ Cloud\ Web " + DestinationFolder + "BamBam\ Cloud\ Web/"
      path = BuildApp(kWin64, False)
      result = DoShellCommand("mv ~/Documents/CubeiTz\ Decrypted/0000033439/Builds\ -\ BamBam\ Cloud\ Web/Windows\ 64\ bit/BamBam\ Cloud\ Web ~/Documents/CubeiTz\ Decrypted/0000033439/on\ the\ server/BamBam\ Cloud\ Web/")
    End If
  End Select
  
  'reset the Optimisation Level for that app
  PropertyValue("App.OptimizationLevel") = "0"
  PropertyValue("CommonSecure.isAppStoreApp") = "False"
  
  Speak("Finished Building " + BaseName)
Next

Speak("All Building completed now!")

'PropertyValue("App.Application Identifier") = "com.holymackerelsoftware." + BaseName + "CRM"
'PropertyValue("App.MacOSXAppName") = BaseName + "CRM"

'PropertyValue("App.Description") = BaseName + "CRM"
'PropertyValue("App.WindowsAppName") = BaseName + "CRM"
'PropertyValue("App.ProductName") = BaseName + "CRM"
'PropertyValue("App.InternalName") = BaseName + "CRM"
'PropertyValue("App.FileDescription") = BaseName + "CRM" + " by HMS"

'PropertyValue("App.LinuxAppName") = BaseName + "CRM"
1 Like