Good Practices for Including Libraries with project

Started by
0 comments, last by JoeCooper 13 years, 6 months ago
I have a source code repository and I'm tired of having to Download the libraries every time I put the source on a new system, especially when on Windows!!! On linux it's not so bad...

So basically, what are some good practices for including the libraries? I have things like OpenGL, GLU, SDL, FMODex, Physfs, DevIL.

I took a look at GZdoom source and saw they included the source for things like lzma and bzip. I've seen other projects that have binaries of libraries included for the needed platform with folders containing the ones for Win32 or Debian or MIPS or whatever for example...

I'm guessing it would be kinda stupid to include libraries for OpenGL since most systems come standard, but it'd be cool to have binaries included for SDL, PhysFS, and all that. I'm using Eclipse as my IDE so I can have different comiler configurations depending on if I'm on Linux or Windows, and point to the needed libraries.

I'm not sure if I should go with including the binaries of the libraries I need or just include the source.

At the moment, I get the needed libraries for my system and install them into the system. On windows I would put them into the needed minGW folder and include the dlls in the working directory and I want to be able to.

I want to make it so me and other people who check out my source from the repository can immediately compile with no problem, especially now because I'm going to be using my game engine for a class and I want the professor to be able to compile my engine without having to obtain all the libraries herself.
Advertisement
For actual deployment to a customer \ end-user, of course you would include binaries, except for OpenGL which you can reasonably expect to be on the end user's system and should only be deployed by the graphics hardware vendor anyway.

But for source, while I have seen people include some dependencies as a convenience, it is normal not to do it. Are you prepared to update your own deployment every time one of them releases minor bugfix patch?

Just make it clear about compatibility; i.e. if you need the latest version of SDL 1.2, and it isn't source compatible with 1.3, you need to make that clear.

This topic is closed to new replies.

Advertisement