>The changes necessary to fix this are a bit intrusive, but not
>particularly risky:
>      * install libsyncevolution header files in a standard
>        path: /usr/include/syncevolution/*.h
>      * change the #include rules inside these .h files so that they use
>        "syncevolution/" as prefix for all of them, rename "core"
>        directory to "syncevolution"
>      * don't depend on config.h in the header files (apps might not
>        have the same defines in their own config.h)
>      * install libsyncevolution.la and add a .pc file for it
>      * scan a directory for backends to open dynamically in
>        SyncSource.cpp instead of using a hard-coded list (should also
>        work when running inside the build directory, with backends in
>        backends/*/.libs)
The change at SyncEvolution side has been pushed to eds branch, some
points need discussing:
1. To make syncevolution core as a library and remove config.h, I have to add
dependencies for libsyncevolution (eds, glib, etc.); this means a backend 
developer
who does not touch eds stuff has to install eds library to install 
libsyncevolution.
2. client-test was always linked to backend libraries even when the backend is
built as dynamic library; I am not sure why it worked like this. I have changed 
so that
client-test will not link to backend libraries but later dynamically loads the 
backends
library at runtime if enable-shared is on. 
3. We have discussed how to scan possible backend libraries both from a 
standard path
and the built directory; Patrick pointed out a possible solution to scan the 
program path
which is passed in as argv[0] in main. This still not worked easily because we 
are relying 
on the static initialization which is before the main routine is called. We may 
need to 
clean up the static initializations if possible.

--
Thanks,
Congwu 
_______________________________________________
SyncEvolution mailing list
[email protected]
http://lists.syncevolution.org/listinfo/syncevolution

Reply via email to