xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-devtools/vala/vala.inc (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "C#-like programming language for easing GObject programming"
2*4882a593SmuzhiyunHOMEPAGE = "http://vala-project.org"
3*4882a593SmuzhiyunDESCRIPTION = "Vala is a C#-like language dedicated to ease GObject programming. \
4*4882a593SmuzhiyunVala compiles to plain C and has no runtime environment nor penalities whatsoever."
5*4882a593SmuzhiyunSECTION = "devel"
6*4882a593SmuzhiyunDEPENDS = "bison-native flex-native glib-2.0"
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun# Appending libxslt-native to dependencies has an effect
9*4882a593Smuzhiyun# of rebuilding the manual, which is very slow. Let's do this
10*4882a593Smuzhiyun# only when api-documentation distro feature is enabled.
11*4882a593SmuzhiyunDEPENDS:append:class-target = " ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'libxslt-native', '', d)}"
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun# vala-native contains a native version of vapigen, which we use instead of the target one
14*4882a593SmuzhiyunDEPENDS:append:class-target = " vala-native"
15*4882a593SmuzhiyunBBCLASSEXTEND = "native"
16*4882a593SmuzhiyunLICENSE = "LGPL-2.1-only"
17*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunSHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunSRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/${BPN}/${SHRT_VER}/${BP}.tar.xz"
22*4882a593Smuzhiyuninherit autotools pkgconfig upstream-version-is-even
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunFILES:${PN} += "${datadir}/${BPN}-${SHRT_VER}/vapi ${libdir}/${BPN}-${SHRT_VER}/"
25*4882a593SmuzhiyunFILES:${PN}-doc += "${datadir}/devhelp"
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun# .gir files from gobject-introspection are installed to ${libdir} when multilib is enabled
28*4882a593SmuzhiyunGIRDIR_OPT = "${@'--girdir=${STAGING_LIBDIR}/gir-1.0' if d.getVar('MULTILIBS') else ''}"
29*4882a593Smuzhiyun
30*4882a593Smuzhiyundo_configure:prepend:class-target() {
31*4882a593Smuzhiyun        # Write out a vapigen wrapper that will be provided by pkg-config file installed in target sysroot
32*4882a593Smuzhiyun        # The wrapper will call a native vapigen
33*4882a593Smuzhiyun        cat > ${B}/vapigen-wrapper << EOF
34*4882a593Smuzhiyun#!/bin/sh
35*4882a593Smuzhiyunvapigen-${SHRT_VER} ${GIRDIR_OPT} "\$@"
36*4882a593SmuzhiyunEOF
37*4882a593Smuzhiyun        chmod +x ${B}/vapigen-wrapper
38*4882a593Smuzhiyun}
39*4882a593Smuzhiyun
40*4882a593SmuzhiyunEXTRA_OECONF += " --disable-valadoc"
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun# Vapigen wrapper needs to be available system-wide, because it will be used
43*4882a593Smuzhiyun# to build vapi files from all other packages with vala support
44*4882a593Smuzhiyundo_install:append:class-target() {
45*4882a593Smuzhiyun        install -d ${D}${bindir_crossscripts}/
46*4882a593Smuzhiyun        install ${B}/vapigen-wrapper ${D}${bindir_crossscripts}/
47*4882a593Smuzhiyun}
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun# Put vapigen wrapper into target sysroot so that it can be used when building
50*4882a593Smuzhiyun# vapi files.
51*4882a593SmuzhiyunSYSROOT_DIRS += "${bindir_crossscripts}"
52*4882a593Smuzhiyun
53*4882a593Smuzhiyuninherit multilib_script
54*4882a593SmuzhiyunMULTILIB_SCRIPTS = "${PN}:${bindir}/vala-gen-introspect-0.56"
55*4882a593Smuzhiyun
56*4882a593SmuzhiyunSYSROOT_PREPROCESS_FUNCS:append:class-target = " vapigen_sysroot_preprocess"
57*4882a593Smuzhiyunvapigen_sysroot_preprocess() {
58*4882a593Smuzhiyun        # Tweak the vapigen name in the vapigen pkgconfig file, so that it picks
59*4882a593Smuzhiyun        # up our wrapper.
60*4882a593Smuzhiyun        sed -i \
61*4882a593Smuzhiyun           -e "s|vapigen=.*|vapigen=${bindir_crossscripts}/vapigen-wrapper|" \
62*4882a593Smuzhiyun           ${SYSROOT_DESTDIR}${libdir}/pkgconfig/vapigen-${SHRT_VER}.pc
63*4882a593Smuzhiyun}
64*4882a593Smuzhiyun
65*4882a593SmuzhiyunSSTATE_SCAN_FILES += "vapigen-wrapper"
66*4882a593Smuzhiyun
67*4882a593SmuzhiyunPACKAGE_PREPROCESS_FUNCS += "vala_package_preprocess"
68*4882a593Smuzhiyun
69*4882a593Smuzhiyunvala_package_preprocess () {
70*4882a593Smuzhiyun	rm -rf ${PKGD}${bindir_crossscripts}
71*4882a593Smuzhiyun}
72