[odb-users] Is there a amalgamation package available?

Boris Kolpackov boris at codesynthesis.com
Thu Oct 30 05:27:41 EDT 2014


Hi Rafal,

Rafal Gm <grasmanek94 at gmail.com> writes:

> Just like sqlite3 does have amalgamation packages, does ODB (preferably
> main and sqlite) also have it?

Having something like this for ODB would be problematic for two reasons:

1. Different people use different databases (and sometime combinations of
   multiple databases). Maintaining all possible combinations (especially
   once you throw in libodb-boost and libodb-qt) will be too much of a
   burden.

2. Having ODB partitioned into multiple small modules makes it very
   cheap (procedurally) for us to release targeted bug fixes. For example,
   if there is a bug in libodb-sqlite, we can test and release just this
   one library. If there were also a number of amalgamations to release,
   this will become a much bigger burden.


> (or a script, preferably runnable on Windows, to generate the amalgamation)

I think a much more straightforward thing to do would be to write a
script (batch file) that builds every ODB package that you need using
VC++ batch build and then creates a "build amalgamation". For the
first part (build with DEVENV) you can use, as an inspiration, the
build.bat file from the odb-tests package. There are also more similar
scripts in odb-etc[1] (internally we build entire ODB and then run all
the tests and examples for all the databases in batch mode).

For the second part ("build amalgamation") what you can do is copy the
bin/, lib/ (or bin64/, lib64/) and odb/ sub-directories of libodb and
libodb-sqlite into one directory. This way you will merge headers and
libraries for these two packages into a single location which you
can then use in VC++ Directories or some such.


> What does ODB stand for?

It is not an acronym, just a name. If you must have some meaning
associated with it, you can think of it as "Object DataBase".


[1] http://scm.codesynthesis.com/?p=odb/odb-etc.git;a=tree;f=test/windows

Boris



More information about the odb-users mailing list