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