Installing SDL on CI services as a dependency


#1

Can someone point me to an example of how to install libSDL in a Windows CI service (like AppVeyor or Microsoft Azure) such that it can act a dependency for some other project-under-test?

Specifically, I’m trying to replicate the steps described here to install libSDL under MinGW: https://www.emaculation.com/forum/viewtopic.php?f=6&t=10019

Unfortunately I don’t have access to a Windows machine to try this directly, although I’ve been attempting to use the “Remote desktop” feature of AppVeyor to debug the issue in the GUI. This is a bit difficult as well, since it looks like there are a lot more types of terminal/shell windows (PowerShell, cmd.exe, GitHub shell, MinGW shell, etc) since I last used Windows. Each of my attempts has resulted in the configure script not being able to find SDL2. e.g.:
https://ci.appveyor.com/project/ianfixes/macemu/builds/23454027/job/3evq3bnfa0p3cno0#L2117

This is my CI configuration:

I assume I’m failing to export some directory to the PATH, but I’m not familiar enough with any of this to properly debug it. What should I try next?


#2

Bump. Can anyone comment, even if only to say “I’ve never done this / I have no idea how to do this / I don’t know where else you should try to ask this”?


#3

I have never done this


#4

I’m sure this is not the answer you’re looking for, but if you really need a Windows build and don’t mind going through some tedious manual work, you could use virtualization to run Windows (the DRM thankfully only will remind you from time to time that you ought to “activate Windows” with a push notification), install whatever compiler and libraries you want, and build your project. At least then you’re not tied to those specific tools, although if those are what you want to use then perhaps this is a step backward. Best of luck


#5

It’s not the build itself I need, but a way to prove that the project itself can be built. This allows me to leverage the Github status checks (https://help.github.com/en/articles/about-status-checks) to verify contributions to an open-source project I’m currently maintaining (aka “Continuous Integration” or “CI”, if you’re hearing these terms for the first time).

AppVeyor and Travis CI perform this “continuous integration” service, but it requires me to list out the commands that are required in order to – from scratch – install the dependencies and compile the project. I don’t know what these commands are. I am able to download and install SDL, but somewhere I’m failing to add the library to the proper system path such that the dependent project can actually compile against it.


#6

For Windows, I simply bundle the pre-built binary files in the repo and point the linker at them. I don’t even bother to try doing the build each time.

You can look at my travis and appveyor files if you like. The list of libs to link with on Windows can be easily found towards the bottom of the build.rs: