[Digikam-devel] digikam libs questions

Andi Clemens andi.clemens at gmx.net
Sat Oct 25 14:14:02 BST 2008


Gilles asked me to send this mail to the ML...


Hi,

I used to program in python all the time, so I'm still quite confused by the 
libs mechanism in C++.

I understand that some of the .o files are packed into library files (to save 
space and make things easier) and some header files are stored 
in /usr/include/digikam to actually access those libs from the program the 
libs will be used in.

But what are those DIGIKAM_EXPORT macros for? They seem to be in nearly every 
class although not every class seems to be exported into libs (or at least no 
header files exist in /usr/include/digikam).

Do they signal gcc to pack those object files into libraries?
I found out that in the main CMakeLists.txt (in digikam root) there are a lot 
of libs defined, but in the end only a few of them are actually installed 
in /usr/lib. For example we define a libhaar, but I can't find it anywhere.

Maybe those questions are stupid, but I want to understand completely what we 
are doing here (in Cmake and in the code as well).
For example my histogrambox widget: I just used copy and paste for it, because 
I didn't know what to do at this moment. So it has an EXPORT macro in front 
of the class and it also becomes installed in /usr/include, but I guess we 
don't need this widget the be accessed from outside of digiKam. So I could 
remove it from the INSTALL rule in the CMake file. But if I do so, do I have 
to remove the EXPORT macro as well or do I have to keep it.


Andi



More information about the Digikam-devel mailing list