What should the build environment look like for a cross-platform multilingual library with external dependencies?

I am studying launching a small library with the following desired requirements:

  • created on 3 platforms : Linux, Windows, OS X
  • has bindings for 3 dynamic languages : Python, Ruby, Lua
  • relies on code from external projects : clutter, cairo, pango

Is there a way to create a build environment that somehow bypasses the build system of external libraries?

A naive use case would be to simply load the source code of the library, have a script inside the source code load the source code of the dependencies and fix things if necessary, and then just create everything in one command using the native environment (Xcode on OS X, Visual Studio Express for Windows and GCC on Linux).

The final library should have all the statically related dependencies.

What are my options? What is the best way to approach this? Any tutorials or useful links are appreciated.

Thank you in advance!:)

+4
source share
1 answer

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

It is designed for continuous integration, but as a side effect it has an extremely flexible assembly task configuration mechanism that can invoke various build tools.

It also has the concept of subordinate nodes and associates certain tasks with these nodes, so you can assemble a sequence of construction tasks that are associated with subordinate nodes in the corresponding OS that use the best breed building tools for each language.

+1
source

Source: https://habr.com/ru/post/1346017/


All Articles