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
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.
any chance to give us your example?
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.
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"