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

Reply via email to