pdamoc
pdamoc

Reputation: 2923

How should a build environment look like for a cross-platform, multi-language library with external dependencies?

I'm researching into starting a small library with the following desired requirements:

  1. builds natively on 3 platforms: Linux, Windows, OS X
  2. has bindings for 3 dynamic languages: Python, Ruby, Lua
  3. relies on code from external projects: clutter, cairo, pango

Is there a way to create a build environment that will somehow bypass the external libraries build system?

The naive use case would be to just download the library source code, have a script inside the source code download the dependencies' source code and patch things if need be, then just build everything in one command using the native environment (XCode on OS X, Visual Studio Express on Windows and GCC on Linux).

The final library should have all the dependencies statically linked.

What are my options? How should I best approach this? Any tutorials or useful links are appreciated.

Thank you in advance! :)

Upvotes: 4

Views: 713

Answers (1)

Amasuriel
Amasuriel

Reputation: 2200

I would take a look at http://jenkins-ci.org/ (formerly Hudson).

Its designed for continuous integration, but as a side effect have a tremendously flexible build job configuration engine that can invoke a variety of build tools.

It also has the concept of slave nodes and associating specific jobs with those nodes, so you can put together a sequence of build jobs that are associated with slave nodes on the appropriate OS's that use best of breed build tools for each language.

Upvotes: 1

Related Questions