ca8b0789b9
Current wrappers hard-coded them at 0.42 which is very long ago. Hence, those wrappers insert a versioned vapidir that no longer exists. The build still work because valac will look into host's versioned vapidir instead. Let's check the version we're having and wrap that instead of changing the hard-coded number from time to time.
227 lines
6.4 KiB
Bash
227 lines
6.4 KiB
Bash
# This hook creates wrappers for foo-config scripts in cross builds.
|
|
#
|
|
# Wrappers are created in ${wrksrc}/.xbps/bin and this path is appended
|
|
# to make configure scripts find them.
|
|
|
|
generic_wrapper() {
|
|
local wrapper="$1"
|
|
[ ! -x ${XBPS_CROSS_BASE}/usr/bin/${wrapper} ] && return 0
|
|
[ -x ${XBPS_WRAPPERDIR}/${wrapper} ] && return 0
|
|
|
|
cat >>${XBPS_WRAPPERDIR}/${wrapper}<<_EOF
|
|
#!/bin/sh
|
|
exec ${XBPS_CROSS_BASE}/usr/bin/${wrapper} --prefix=${XBPS_CROSS_BASE}/usr "\$@"
|
|
_EOF
|
|
|
|
chmod 755 ${XBPS_WRAPPERDIR}/${wrapper}
|
|
}
|
|
|
|
generic_wrapper2() {
|
|
local wrapper="$1"
|
|
|
|
[ ! -x ${XBPS_CROSS_BASE}/usr/bin/${wrapper} ] && return 0
|
|
[ -x ${XBPS_WRAPPERDIR}/${wrapper} ] && return 0
|
|
|
|
cat >>${XBPS_WRAPPERDIR}/${wrapper}<<_EOF
|
|
#!/bin/sh
|
|
if [ "\$1" = "--prefix" ]; then
|
|
echo "${XBPS_CROSS_BASE}/usr"
|
|
elif [ "\$1" = "--cflags" ]; then
|
|
${XBPS_CROSS_BASE}/usr/bin/${wrapper} --cflags | sed -e "s,-I/usr/include,-I${XBPS_CROSS_BASE}/usr/include,g"
|
|
elif [ "\$1" = "--libs" ]; then
|
|
${XBPS_CROSS_BASE}/usr/bin/${wrapper} --libs | sed -e "s,-L/usr/lib,-L${XBPS_CROSS_BASE}/usr/lib,g"
|
|
else
|
|
exec ${XBPS_CROSS_BASE}/usr/bin/${wrapper} "\$@"
|
|
fi
|
|
exit \$?
|
|
_EOF
|
|
chmod 755 ${XBPS_WRAPPERDIR}/${wrapper}
|
|
}
|
|
|
|
generic_wrapper3() {
|
|
local wrapper="$1"
|
|
[ ! -x ${XBPS_CROSS_BASE}/usr/bin/${wrapper} ] && return 0
|
|
[ -x ${XBPS_WRAPPERDIR}/${wrapper} ] && return 0
|
|
|
|
cp ${XBPS_CROSS_BASE}/usr/bin/${wrapper} ${XBPS_WRAPPERDIR}
|
|
sed -e "s,^libdir=.*,libdir=${XBPS_CROSS_BASE}/usr/lib,g" -i ${XBPS_WRAPPERDIR}/${wrapper}
|
|
sed -e "s,^prefix=.*,prefix=${XBPS_CROSS_BASE}/usr," -i ${XBPS_WRAPPERDIR}/${wrapper}
|
|
|
|
chmod 755 ${XBPS_WRAPPERDIR}/${wrapper}
|
|
}
|
|
|
|
apr_apu_wrapper() {
|
|
local wrapper="$1"
|
|
|
|
[ ! -x ${XBPS_CROSS_BASE}/usr/bin/${wrapper} ] && return 0
|
|
[ -x ${XBPS_WRAPPERDIR}/${wrapper} ] && return 0
|
|
|
|
cat >>${XBPS_WRAPPERDIR}/${wrapper}<<_EOF
|
|
#!/bin/sh
|
|
${XBPS_CROSS_BASE}/usr/bin/${wrapper} "\$@" | sed -e "s,/usr/,${XBPS_CROSS_BASE}/usr/,g"
|
|
exit \$?
|
|
_EOF
|
|
chmod 755 ${XBPS_WRAPPERDIR}/${wrapper}
|
|
}
|
|
|
|
python_wrapper() {
|
|
local wrapper="$1" version="$2"
|
|
|
|
[ -x ${XBPS_WRAPPERDIR}/${wrapper} ] && return 0
|
|
cat >>${XBPS_WRAPPERDIR}/${wrapper}<<_EOF
|
|
#!/bin/sh
|
|
case "\$1" in
|
|
--includes|--cflags)
|
|
echo "-I${XBPS_CROSS_BASE}/usr/include/python${version}" ;;
|
|
esac
|
|
exit 0
|
|
_EOF
|
|
chmod 755 ${XBPS_WRAPPERDIR}/${wrapper}
|
|
}
|
|
|
|
pkgconfig_wrapper() {
|
|
if [ ! -x /usr/bin/pkg-config ]; then
|
|
return 0
|
|
fi
|
|
[ -x ${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-pkg-config ] && return 0
|
|
cat >>${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-pkg-config<<_EOF
|
|
#!/bin/sh
|
|
|
|
export PKG_CONFIG_SYSROOT_DIR="$XBPS_CROSS_BASE"
|
|
export PKG_CONFIG_PATH="$XBPS_CROSS_BASE/usr/lib/pkgconfig:$XBPS_CROSS_BASE/usr/share/pkgconfig\${PKG_CONFIG_PATH:+:\${PKG_CONFIG_PATH}}"
|
|
export PKG_CONFIG_LIBDIR="$XBPS_CROSS_BASE/usr/lib/pkgconfig\${PKG_CONFIG_LIBDIR:+:\${PKG_CONFIG_LIBDIR}}"
|
|
exec /usr/bin/pkg-config "\$@"
|
|
_EOF
|
|
chmod 755 ${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-pkg-config
|
|
if [ -z "$no_generic_pkgconfig_link" ]; then
|
|
ln -sf ${XBPS_CROSS_TRIPLET}-pkg-config ${XBPS_WRAPPERDIR}/pkg-config
|
|
fi
|
|
}
|
|
|
|
vapigen_wrapper() {
|
|
local _vala_version _file
|
|
if [ ! -x /usr/bin/vapigen ]; then
|
|
return 0
|
|
fi
|
|
[ -x ${XBPS_WRAPPERDIR}/vapigen ] && return 0
|
|
for _file in /usr/bin/vapigen-*; do
|
|
if [ -x "${_file}" ]; then
|
|
_vala_version=${_file#*-}
|
|
fi
|
|
done
|
|
cat >>${XBPS_WRAPPERDIR}/vapigen<<_EOF
|
|
#!/bin/sh
|
|
exec /usr/bin/vapigen \\
|
|
--vapidir=${XBPS_CROSS_BASE}/usr/share/vala/vapi \\
|
|
--vapidir=${XBPS_CROSS_BASE}/usr/share/vala-${_vala_version}/vapi \\
|
|
--girdir=${XBPS_CROSS_BASE}/usr/share/gir-1.0 "\$@"
|
|
_EOF
|
|
chmod 755 ${XBPS_WRAPPERDIR}/vapigen
|
|
ln -sf vapigen ${XBPS_WRAPPERDIR}/vapigen-${_vala_version}
|
|
}
|
|
|
|
valac_wrapper() {
|
|
local _vala_version _file
|
|
if [ ! -x /usr/bin/valac ]; then
|
|
return 0
|
|
fi
|
|
[ -x ${XBPS_WRAPPERDIR}/valac ] && return 0
|
|
for _file in /usr/bin/valac-*; do
|
|
if [ -x "${_file}" ]; then
|
|
_vala_version=${_file#*-}
|
|
fi
|
|
done
|
|
cat >>${XBPS_WRAPPERDIR}/valac<<_EOF
|
|
#!/bin/sh
|
|
exec /usr/bin/valac \\
|
|
--vapidir=${XBPS_CROSS_BASE}/usr/share/vala/vapi \\
|
|
--vapidir=${XBPS_CROSS_BASE}/usr/share/vala-${_vala_version}/vapi \\
|
|
--girdir=${XBPS_CROSS_BASE}/usr/share/gir-1.0 "\$@"
|
|
_EOF
|
|
chmod 755 ${XBPS_WRAPPERDIR}/valac
|
|
ln -sf valac ${XBPS_WRAPPERDIR}/valac-${_vala_version}
|
|
}
|
|
|
|
install_wrappers() {
|
|
local fname
|
|
|
|
for f in ${XBPS_COMMONDIR}/wrappers/*.sh; do
|
|
fname=${f##*/}
|
|
fname=${fname%.sh}
|
|
install -p -m0755 ${f} ${XBPS_WRAPPERDIR}/${fname}
|
|
done
|
|
}
|
|
|
|
install_cross_wrappers() {
|
|
local fname prefix
|
|
|
|
if [ -n "$XBPS_CCACHE" ]; then
|
|
[ -x "/usr/bin/ccache" ] && prefix="/usr/bin/ccache "
|
|
elif [ -n "$XBPS_DISTCC" ]; then
|
|
[ -x "/usr/bin/distcc" ] && prefix="/usr/bin/distcc "
|
|
fi
|
|
|
|
for fname in cc gcc; do
|
|
sed -e "s,@BIN@,${prefix}/usr/bin/$XBPS_CROSS_TRIPLET-gcc,g" \
|
|
${XBPS_COMMONDIR}/wrappers/cross-cc > \
|
|
${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-${fname}
|
|
chmod 755 ${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-${fname}
|
|
done
|
|
for fname in c++ g++; do
|
|
sed -e "s,@BIN@,${prefix}/usr/bin/$XBPS_CROSS_TRIPLET-g++,g" \
|
|
${XBPS_COMMONDIR}/wrappers/cross-cc > \
|
|
${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-${fname}
|
|
chmod 755 ${XBPS_WRAPPERDIR}/${XBPS_CROSS_TRIPLET}-${fname}
|
|
done
|
|
}
|
|
|
|
hook() {
|
|
export PATH="$XBPS_WRAPPERDIR:$PATH"
|
|
|
|
install_wrappers
|
|
|
|
[ -z "$CROSS_BUILD" ] && return 0
|
|
|
|
install_cross_wrappers
|
|
pkgconfig_wrapper
|
|
vapigen_wrapper
|
|
valac_wrapper
|
|
generic_wrapper icu-config
|
|
generic_wrapper libgcrypt-config
|
|
generic_wrapper freetype-config
|
|
generic_wrapper sdl-config
|
|
generic_wrapper sdl2-config
|
|
generic_wrapper gpgme-config
|
|
generic_wrapper imlib2-config
|
|
generic_wrapper libmikmod-config
|
|
generic_wrapper pcre-config
|
|
generic_wrapper net-snmp-config
|
|
generic_wrapper wx-config
|
|
generic_wrapper wx-config-3.0
|
|
generic_wrapper wx-config-gtk3
|
|
generic_wrapper2 curl-config
|
|
generic_wrapper2 gpg-error-config
|
|
generic_wrapper2 libassuan-config
|
|
generic_wrapper2 mysql_config
|
|
generic_wrapper2 taglib-config
|
|
generic_wrapper2 nspr-config
|
|
generic_wrapper2 gdal-config
|
|
generic_wrapper3 libpng-config
|
|
generic_wrapper3 xmlrpc-c-config
|
|
generic_wrapper3 krb5-config
|
|
generic_wrapper3 cups-config
|
|
generic_wrapper3 Magick-config
|
|
generic_wrapper3 fltk-config
|
|
generic_wrapper3 xslt-config
|
|
generic_wrapper3 xml2-config
|
|
generic_wrapper3 fox-config
|
|
generic_wrapper3 xapian-config
|
|
generic_wrapper3 ncurses5-config
|
|
generic_wrapper3 ncursesw5-config
|
|
generic_wrapper3 libetpan-config
|
|
generic_wrapper3 giblib-config
|
|
python_wrapper python-config 2.7
|
|
python_wrapper python3-config 3.9
|
|
apr_apu_wrapper apr-1-config
|
|
apr_apu_wrapper apu-1-config
|
|
}
|