Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Storing third-party framework/middleware into source control that needs to alter your compiler/IDE

I know there are posts that ask how one stores third-party libraries into source control (such as this and this). While those are great answers, I still can't find the answer to this:

How do you store third-party middleware/frameworks binaries that need to alter your compiler / IDE for the library to work properly? Note: for my needs, I don't need to store the middleware source, I only store header files / lib / JAR ..so that it's ready to be linked.

Typically, you simply link libraries to your app, and you are good. But what about middleware / frameworks that need more?

Specific examples:

  • Qt moc pre-processor.

  • ZeroC Ice Slice (ice) compiler (similar to CORBA IDL preprocessor).

Basically these frameworks/middleware need to generate their own code before your application can link to it.

From the point of view of the developer, ideally he wants to just checkout, and everything should be ready to go. But then my IDE/compiler will not be setup properly yet, so the compilation will fail..

What do you think?

like image 446
sivabudh Avatar asked Dec 29 '22 13:12

sivabudh


1 Answers

Backup everything including the setup of the IDE, operating system, etc. This is what i do

1) Store all 3rd party libraries in source control. I have a branch for all the libraries.

2) Backup the entire tool chain which was used to build. This includes every tool. Each tool is installed into the same directory on each developers computer, so this makes it simple to setup a developers machine remotely.

3) This is the most hardcore, but prepare 1 perfect developer IDE setup which is clean, then make a VMWare / VirtualPC image out of it. This will be useful when you cant seem to get the installers to work in future.

I learned this lesson the painful way because I often have to wade through visual studio 6 code which don't build properly.

like image 77
Andrew Keith Avatar answered Jan 14 '23 08:01

Andrew Keith