Support building Windows version on Appveyor#437
Conversation
|
Should the .yml file be at the top-level or in Windows/?
What's a simple description of what Appveyor does?
…--
I believe the Bible to be the very Word of God: http://Mielke.cc/bible/
Dave Mielke | 2213 Fox Crescent | WebHome: http://Mielke.cc/
EMail: ***@***.*** | Ottawa, Ontario | Twitter: @Dave_Mielke
Phone: +1 613 726 0014 | Canada K2A 1H7 |
|
By default, it should be in the top level directory. You can also move it to the Windows directory, but that requires changing the configuration in Appveyors gui, i.e. opening project settings and on the general tab, appveyor.yml Custom configuration .yml file name, enter the new path. However, if you ever wish to add appveyor for linux builds as well, you'd have to undo this.
To keep it very simple, when Appveyor is setup and you commit something to the master branch, Appveyor spins up a Windows virtual machine and runs the instructions from appveyor.yml to build your code. In the end, when the build finishes, it can publish build artifacts, such as in the case of BRLTTY, the zip and exe files resulting from the Windows build. See here for an example run. You can retrieve the build artifacts when going to the Artifacts link. |
As I have been struggling for ages to get a working windows build of BRLTTY for myself, I figured building the Windows version with Continuous Integration would be most helpful.
Appveyor has baked in support for msys1, so that seemed like a good starting point, and indeed, it works like a charm.
The bundled configuration for Appveyor builds BRLTTY and uses Python 3.11 for the Python bindings. The resulting zip and installer executable are uploaded as artifacts and can be fetched from the build after building.
i have also added Unicode false to the nsis script. This is the default behavior in the version of nsis that is used by the build system by default, but Appveyor has a newer version that has Unicode set to true by default. When we change Unicode to true, we get errors with nsistrings.txt parsing.
Note that you need to setup Appveyor for this to work, which is pretty trivial:
When setup is finished, pushing a next commit to master or triggering the build from the appveyor dashboard should work. It should also work for pull requests out of the box.
note that this can be expanded in many ways, i.e: