Hi Rodney, To jump in here, there's still some work to be done to support plug-in writers. We wanted to make sure our own plug-ins worked first so we weren't putting untested interfaces out into the world.
One ticket you should be aware of: http://trac.yorba.org/ticket/3160 This is to have Shotwell install the .h and VAPI files in a "make install". This will only happen if a switch is enabled with the configure script. As part of this work we'll also produce and install a .pc file. Until then, you'll need to copy the generated .h, .vapi, and .dep files to your project and include them in your build (the valac --vapidir option is useful here). Because the .vapi files wants to look for the .h files in a plugins/ subdirectory, they should be placed there, i.e. my_project/plugins. Once Shotwell is capable of installing the header and VAPIs, you won't need to include them in your project directory. -- Jim On Tue, Feb 8, 2011 at 5:53 PM, Lucas Beeler <[email protected]> wrote: > Hi Rodney, > > Sorry for not answering your questions! Admittedly, my previous email > was probably more of an introduction to the state of the Shotwell > plug-in system than it was a specific response to your points. Once > again, I apologize. I'll hit your questions one-by-one this time: > > > Is there a shared library that the plug-ins link > > to for the Spit.* API/Interfaces? > > No. The plug-ins link directly with the Shotwell executable. There's > no stub library or developer package that needs to be installed or > that appears in Synaptic or as a pkg-config module. All of the > references to the word "package" in the Shotwell make files refer to > Vala packages. As you noted, a Vala package isn't a "package" in the > sense of Synaptic or pkg-config. It's just a .vapi file and a .deps > file. > > > is there also a .gir being generated for them? > > No. Shotwell doesn't use GObject introspection to discover interfaces. > Interface specification is all done directly through .vapi and .deps > files. > > > If so, is there a .vapi/.deps being built for those? > > Yes. The .vapi and .deps files for the plug-in interfaces are > generated automatically by the Shotwell build system. Simply running > "./configure ; make" will cause the files shotwell-spit-1.0.vapi, > shotwell-spit-1.0.deps, shotwell-publishing-1.0.vapi, and > shotwell-publishing-1.0.deps to appear in the > ${SHOTWELL_ROOT}/plugins/ directory. These should be sufficient for > interface specification, at least as far as the Vala compiler is > concerned. If you're curious, the make rules that generate these files > are located in the file ${SHOTWELL_ROOT}/src/plugins/mk/interfaces.mk. > > > If so, is there a .pc file to specify CFLAGS/LDFLAGS for linking? > > No. The Vala compiler will specify the CFLAGS and LDFLAGS variables > automatically when it invokes gcc as a child process. Right now, if > you want to develop plug-ins in C instead of Vala, you'll need to set > these up manually. > > Cheers, > Lucas > _______________________________________________ > Shotwell mailing list > [email protected] > http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell > _______________________________________________ Shotwell mailing list [email protected] http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell
