Optionally using third party libraries directly from the repo

Right now due to depending on package managers openage currently is really hard to build on specific platforms. I think this can be solved in easy way. Hopefully this’ll offer best solution for every world of users. This is my thought after seeing some projects in Github.

  1. Make a third party folder in repository. Here we will have necessary libraries. Our CMake buildsystem will search for necessary libraries here first before checking a tool chain file or other necessary package managers.
  2. For Python we will have a virtual environment setup in the repo itself. It’ll by no means will start conflicting with PATH environment variable in case of multiple python setup.
  3. We will have one click make project command to generate necessary project files in case we are missing something and will auto-download to our thirdparty folder which our repository will ignore. It’ll download minimal necessary header and library files and auto-setup python with it’s necessary modules.
  4. In future everytime for managing(adding/remove) dependencies we will keep track of it in a post. Here we will determine how we can integrate our project other platforms or compilers.
    By doing this we can eliminate the task of tedious steps of building openage. We can go other cross platform build tools like premake5, qmake, etc.

Make a third party folder in repository. Here we will have necessary libraries. Our CMake buildsystem will search for necessary libraries here first before checking a tool chain file or other necessary package managers.

I’m not in favour of this. This will just clutter the repo with binary blobs. Just imagine how much space we would have to waste for Qt.

Besides that, it completely counteracts the idea of packaging to begin with. Distro package repositories will not like this method either.

This is mainly for platforms like Windows/Mac. Which doesn’t come with a package manager like Linux does. For them there’ll be just a cmd file to execute necessary commands to build projects. However, we still keep this old method. Win-win for those who just wants to build the project quickly and get into what they wants to do and also those who are using distros to manage libraries. Perhaps I should just edit the post.

Our .gitignore while not taking thirdparty folder into account. So the repo won’t face issues. Just like our current build folder. We can use .rar or cmd commands to get necessary libraries to the folder.
About QT5 is something that bothers me as well. We are using very little of it, I think?

We use vcpkg on Windows and brew on Mac. The beauty of these package managers is, that we can pull in and update the dependencies easily. The problem with your approach is that maintaining all that dependencies in the repository will be just more work for us - unnecessary work because we would have had a working system already. So I’m not in favour of this as well, sorry.

The build process is already pretty straight forward if you follow the instructions in the repository step-by-step. If there are problems building openage you can open a thread here or come into our chat and we will help.

If you just want to try out and run openage or create mods, scenarios, etc. (in the future) the packaged versions for your operating systems are probably better.