GNOME Bugzilla – Bug 608175
Needs to expose more headers, and fix include paths in others
Last modified: 2013-09-13 01:03:56 UTC
While building a stand-alone calendar application (which is now hosted here: http://git.gnome.org/browse/annum/), I hit some problems with headers not being available, or making the build fail because they use include paths that are only valid inside the Evolution source tree. If some of those should not be exposed let me know, and I'll consider shipping the relevant parts in the application itself. Patches attached.
Created attachment 152325 [details] [review] expose ECalendarSelector, and the calendar importer
Created attachment 152326 [details] [review] make authentication available as well
Created attachment 152327 [details] [review] fix include paths for a number of headers
(In reply to comment #3) > Created an attachment (id=152327) [details] [review] > fix include paths for a number of headers Pushed as 65305b728467e74a22300be78cbf498fc5213973.
Created attachment 152331 [details] [review] Make calendar authentication functionality available to API users This patch adds the e_ prefix. Evo keeps building, and so does my application after making the appropriate changes to it =).
Not that it's a show-stopper, but why does evolution-calendar-importer.h need to be installed?
(In reply to comment #6) > Not that it's a show-stopper, but why does evolution-calendar-importer.h need > to be installed? The application I'm writing should be usable without having Evolution around. I am writing it using EShell* objects as a base, but I not always need or want everything that is done by their constructor/constructed methods, which is why I don't just chain up. For that reason, in my EShellBackend I have to initialize the importers: static void annum_shell_backend_init_importers (void) { EImportClass *import_class; EImportImporter *importer; import_class = g_type_class_ref (e_import_get_type ()); importer = gnome_calendar_importer_peek (); e_import_class_add_importer (import_class, importer, NULL, NULL); importer = ical_importer_peek (); e_import_class_add_importer (import_class, importer, NULL, NULL); importer = vcal_importer_peek (); e_import_class_add_importer (import_class, importer, NULL, NULL); } Having said that, this is not a functionality I have invested in yet, so I can come back to this specific issue when I reach it, if you prefer.
Understand. I'd rather not install the import headers, so let's leave that out for now and I can help you work around it if need be. Eventually I'd like to rewrite the whole import framework such that calendar importers are loaded automatically with libevolution-calendar.so. Similarly with mail importers, etc.
(In reply to comment #8) > Understand. I'd rather not install the import headers, so let's leave that out > for now and I can help you work around it if need be. Eventually I'd like to > rewrite the whole import framework such that calendar importers are loaded > automatically with libevolution-calendar.so. Similarly with mail importers, > etc. Sounds good. What about ECalendarSelector, and the auth patch? =)
Go ahead and commit them -- except for the importer file. Don't have time to do a test build with it right now but if anything breaks I'll take care of it.
Comment on attachment 152331 [details] [review] Make calendar authentication functionality available to API users Pushed as d635b839f8d22746f44067464dc3c645aeeb8591.
Comment on attachment 152325 [details] [review] expose ECalendarSelector, and the calendar importer Pushed as dcc317e6496327fb87378985fb731bfe31782871, with ECalendarSelector being exposed, only.
Thanks for the reviews, Matthew, I tested Evo's build, and my application keeps working as well.