Folks: The same app goes to different clients with some changes to the Xojo_code. I would like to automate the process. Changing the Xojo_code in a batch file is straightforward, but
how do I run a Xojo build in batch mode (= unattended from the command line)? - Xojo Windows Desktop
There is no way to build from the command line in xojo directly.
The only way is IDE scripting (can be done via IPC socket also) but you are required to have the full desktop open (which is the most clumbsy way to automate builds in the entire history of build automations). But it’s the only way for now.
Basicly you can do it via terminal but are required to have the IDE open and you need a GUI for that.
* With no user interaction the whole process can be performed: Build all Targets, CodeSign Windows executables, create and sign the installers, package the macOS app in a .dmg and notarize the app, and for Linux create a .tgz package. * even if someone doesn’t use GitHub Actions, one should find plenty of ideas, code snipplets and how-to’s for a local environment in there.
Thank you everyone. Reading through your replies and the webpages they reference is very instructive. They tell me that this procedure should work:
Once only: Construct a generic-client Xojo project and save it as text files.
Once only: Write a program that copies the generic project text files to folder “myclient” and customizes the text files for the specific client: client=myclient. Doing this, not even conditional compilation is needed. All properties and resources can be changed.
Once only: Write a Windows batch file that
a) runs the customizing program for client=myclient
b) launches Xojo with the myclient Xojo project and then waits for Xojo to complete.
When Xojo launches, I click the Build button
When the Build completes, I close Xojo
c) the batch file resumes and does housekeeping with the myclient.exe files
Loop the batch file so that it goes through the client list
Comment: Step 3b would be better if a Xojoscript script could start automatically when Xojo launches, then the script does the Build, and then the script closes Xojo. Is there a way to do this? Or even part of this?