inlib / exlib

The "inlib" and the "exlib" are two sets of C/C++ code which is used to build the ioda application. As these sets contain very general code, as histogram and ntuple classes, a fitter, plotting facilities, an aida file reader, cern-root writer and reader, etc... we deliver them as a standalone product. The inlib gathers code that may use the C and STL standard libraries, but only these. The exlib gathers code that moreover use various "external" packages as OpenGL-ES, freetype2, jpeg, png, cfitsio, etc... The exlib relies also on the inlib.

Straight C++

One strong feature of these sets is that it is not needed to build some library (archive or shared) to use them. In inlib/exlib all the code is "pure header", that is to say there is no need to "build and install" inlib/exlib to use them. (This is similar to some parts of the boost library which are also "pure headers"). This way of doing simplify a lot the way to work on the iPhone and Android versions of ioda since, for them, we are more or less compelled to use a specific build system (Xcode, Eclipse) in order to create a packaging (for exa a ioda-releas.apk for Android) ready for submission on the App Store or Android Marker. We have choosen also this way of doing by having observed that the "build and install" is the number one source of problems with users when delivering a package "with libraries". Then we have decided to simply eliminate these steps. Have a look at Usage and Examples to see, for example, how to book, fill, plot an histogram by "staying cool" with C++ (and then without having to jump in a nightmare of complexity).