On Mon, 2009-04-06 at 01:52 -0400, Yu Feng wrote:
> Hi Jürg,
>
> On Sun, 2009-04-05 at 17:54 +0200, Jürg Billeter wrote:
> > We are pleased to announce version 0.7.0 of Vala, a compiler for the
> > GObject type system.
> >
> > Vala 0.7.0 is now available for download at:
> > http://download.gnome.org/sources/vala/0.7/
> >
> > Changes since 0.6.0
>
> > * Do not generate header files unless requested by the -H commandline
> > option. This requires changes in the build system of Vala projects.
> Are there any references on how to port a project to the new header
> schema?
>
Hi Yu,
this are my .02 cents on the argument because I tried to port Vtg just
yesterday. At the moment I didn't manage to compile it yet, but I think
that I'm hitting a vala bug and not a automake problem.
>From what Jürg told me yesterday we have two main case: library and
programs.
The library is the most "complex" one (nothing really complex...) to
port and you need to do:
1) change the generated C source line
From:
vbftest_SOURCES = \
libvbf.vala.stamp \
$(vbftest_VALASOURCES:.vala=.c) \
$(vbftest_VALASOURCES:.vala=.h) \
$(NULL)
To:
vbftest_SOURCES = \
libvbf.vala.stamp \
$(vbftest_VALASOURCES:.vala=.c) \
$(NULL)
2) Add the -H switch to the valac compile line like in this example:
$(VALAC) $(DEBUG) -C -H vbf.h --library vbf-1.0 --vapidir ../vapi --pkg
gio-2.0 --pkg config --pkg vala-1.0 --pkg utils --basedir
$(top_srcdir)/vbf $^
Note the -H vbf.h, so the vala compiler will generate the vbf.h header
of all the exported (public) symbols
3) Add the generated header (vbf.h in this example) to the _HEADERS
automake directive:
noinst_HEADERS = \
vbf.h \
$(NULL)
The step 3 can be done in two variants, the above one is what I used for
an utility library statically linked with my app. The automake manual
says that for this case is better to include the vbf.h directly in the
_SOURCES but I haven't tried it yet.
The following snippet is taken from the libgee library included with the
vala sources and it's the other way of doing it:
geeincludedir = $(includedir)/vala-1.0
geeinclude_HEADERS = \
gee.h \
$(NULL)
Where gee.vala.stamp is defined in the BUILT_SOURCES directive as
always.
For programs only the first step should be required.
Hope this helps.
Cheers,
Andrea
_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list