[Solved] Problem using a fork of OF in combination with the 'download_libs' script

Dear OF community,

for our current project, we’ve forked OpenFrameworks 0.11.0 and made a few changes to its code that fixed some minor warnings and made our lives easier. We worked very hard to produce clean code without any compiler warnings, apart from some minor warnings in OpenFrameworks itself.

Yesterday, an additional programmer was added to the team and he cloned our Git repository, containing our OpenFrameworks fork as a submodule.

After running the openframeworks/scripts/vs/download_libs.ps1 script from the command line, we would have expected the solution to compile without problems. Instead, it complained about a missing “fmod.h” header file and one or more preprocessor definitions.

We tracked the source of the problem: the download_libs.ps1 script points to an updated version of OpenFrameworks (0.11.1), which has updated the Fmod library from fmodex to fmod. This change was made only a few weeks ago. However, our project files are still for version 0.11.0 and contain no include folders pointing at the new fmod version, nor any additional required settings.

Two questions:

  • How can we use the script to download the libraries for 0.11.0 instead of 0.11.1? Is there a way to do this?
  • What is the reason we need to run a script to download files? Git provides all the tools to efficiently download all required files of a project, either as part of the repository or as submodules. Solely relying on Git would have prevented us from running a script that points to the wrong (newer) version of OpenFrameworks and break our compilation.

We could of course upgrade to 0.11.1 and rebase our changes onto it, but we’d run into the same problem later on if the download script is changed again. We’d like to prevent this at all cost. In the future, it should always be easy to clone the Git repo and reliably compile the project.

Thanks,

Paul

Hi,

You could modify this line to grab the archived 0.11.0 libs:

to:

    $url = "http://ci.openframeworks.cc/libs/0.11.0/$pkg"

We should probably add a line at the top like:

[String]$of_version=""

So you could pass in -of_version="0.11.0" as an arg to get the archived libs.

The reason this is needed is we don’t store the compiled libs in Github.
You could update the apothecary submodule and build the libs that way, but that only works for the latest libs and not the archived versions.

By the way, if you have warning fixes etc, that would be beneficial to OF feel free to open a PR and we can merge them into the main repo.

Thanks!
Theo

Hi Theo,

thank you for taking the time to offer a solution. It works perfectly!

Perhaps it would be a good idea to always add the version number to the download url, as this would prevent the issue from happening in the future.

Kind regards,

Paul

P.S.: I’ll go through the changes that we’ve made and create a PR for the ones that would be a good and non-breaking contribution.

Edit: I’ve created 4 Pull Requests for you to review. I hope they will be useful.

1 Like