>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
