Xojo Build from a command line?

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.

you can not use conditional compilation, or use app arguments or config file?
runme.exe client=a

Please read about:

Introduction to IDE scripting

And then use IDE Communicator from terminal to trigger builds.
We use it to automate building example files to verify they compile.

And for a more advanced use case (*) have a look at this Guest Blog Post: Xojo Github Actions.
All the resources are available here: GitHub: jo-tools/xojo-github-actions.

* 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.

3 Likes

Thank you everyone. Reading through your replies and the webpages they reference is very instructive. They tell me that this procedure should work:

  1. Once only: Construct a generic-client Xojo project and save it as text files.

  2. 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.

  3. 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

  4. 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?