Skip to content

Proposal for an automated build system for RT windows packages #4174

Closed
@aferrero2707

Description

I am currently setting up and automated cross-compilation of the Windows version of RT code via Travis CI. The final goal is to have a .zip package automatically deployed to a specific github release page each time a new commit is made into certain branches.

The mechanism is based on a custom-crafted Docker container which provides a pre-installed Windows cross-compilation environment for GTK applications. The cross-compilation is automated via a tool called crossroad which is provided by one of the GIMP developers.

The goal is to remove the need of human intervention in the tedious process of keeping up-to-date Windows packages from the development branches, and also guarantee the reproducibility of the builds by making sure that the same environment is used each time. Moreover, the deployment does not rely on the availability of specific users and/or systems.
Another clear advantage is that the whole Windows build chain is public, and all developers can see it and do modifications if needed.

The current Travis CI configuration and scripts can be found in my forked RT repo, respectively [here](https://github.com/aferrero2707/RawTherapee/blob/dev/.travis.yml] and here.

ZIP packages are automatically deployed here. A first package is ready for testing here. Packages are tagged with the branch, build date and commit hash, and will be stored in the same github release page.

Known issues:

  • the rewtherapee.exe executable is big, because it is built in RelWithDebInfo mode
  • the lensfun database seems to be not correctly found, and automatic lens corrections are disabled - I am looking into this
  • few UI icons are missing

Any feedback is very much appreciated!

P.S: I am looking into the possibility to automate the creation of OSX .dmg packages with Travis CI as well, using homebrew to provide the required dependencies. I will open a separate issue if you are interested into this as well.

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions