summaryrefslogtreecommitdiff
path: root/meta/classes/cpan_build.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/cpan_build.bbclass')
-rw-r--r--meta/classes/cpan_build.bbclass72
1 files changed, 22 insertions, 50 deletions
diff --git a/meta/classes/cpan_build.bbclass b/meta/classes/cpan_build.bbclass
index 4aff7c8047..fac074d610 100644
--- a/meta/classes/cpan_build.bbclass
+++ b/meta/classes/cpan_build.bbclass
@@ -1,68 +1,40 @@
#
# This is for perl modules that use the new Build.PL build system
#
-inherit cpan-base
+inherit cpan-base perlnative
-#
-# We also need to have built libmodule-build-perl-native for
-# everything except libmodule-build-perl-native itself (which uses
-# this class, but uses itself as the provider of
-# libmodule-build-perl)
-#
-def cpan_build_dep_prepend(d):
- import bb;
- if bb.data.getVar('CPAN_BUILD_DEPS', d, 1):
- return ''
- pn = bb.data.getVar('PN', d, 1)
- if pn in ['libmodule-build-perl', 'libmodule-build-perl-native']:
- return ''
- return 'libmodule-build-perl-native '
+EXTRA_CPAN_BUILD_FLAGS ?= ""
-DEPENDS_prepend = "${@cpan_build_dep_prepend(d)}"
+# Env var which tells perl if it should use host (no) or target (yes) settings
+export PERLCONFIGTARGET = "${@is_target(d)}"
+export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
+export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl-native/perl/${@get_perl_version(d)}/"
+export LD = "${CCLD}"
cpan_build_do_configure () {
- if [ ${@is_target(d)} == "yes" ]; then
+ if [ "${@is_target(d)}" = "yes" ]; then
# build for target
- . ${STAGING_DIR}/${TARGET_SYS}/perl/config.sh
- if [ "${IS_NEW_PERL}" = "yes" ]; then
- perl Build.PL --installdirs vendor \
- --destdir ${D} \
- --install_path lib="${datadir}/perl5" \
- --install_path arch="${libdir}/perl5" \
- --install_path script=${bindir} \
- --install_path bin=${bindir} \
- --install_path bindoc=${mandir}/man1 \
- --install_path libdoc=${mandir}/man3
- else
- perl Build.PL --installdirs vendor \
- --destdir ${D} \
- --install_path lib="${libdir}/perl5/site_perl/${version}" \
- --install_path arch="${libdir}/perl5/site_perl/${version}/${TARGET_SYS}" \
- --install_path script=${bindir} \
- --install_path bin=${bindir} \
- --install_path bindoc=${mandir}/man1 \
- --install_path libdoc=${mandir}/man3
- fi
- else
- # build for host
- perl Build.PL --installdirs site
+ . ${STAGING_LIBDIR}/perl/config.sh
fi
+
+ perl Build.PL --installdirs vendor --destdir ${D} \
+ ${EXTRA_CPAN_BUILD_FLAGS}
+
+ # Build.PLs can exit with success without generating a
+ # Build, e.g. in cases of missing configure time
+ # dependencies. This is considered a best practice by
+ # cpantesters.org. See:
+ # * http://wiki.cpantesters.org/wiki/CPANAuthorNotes
+ # * http://www.nntp.perl.org/group/perl.qa/2008/08/msg11236.html
+ [ -e Build ] || bbfatal "No Build was generated by Build.PL"
}
cpan_build_do_compile () {
- perl Build
+ perl Build verbose=1
}
cpan_build_do_install () {
- if [ ${@is_target(d)} == "yes" ]; then
- perl Build install
- fi
-}
-
-do_stage () {
- if [ ${@is_target(d)} == "no" ]; then
- perl Build install
- fi
+ perl Build install --destdir ${D}
}
EXPORT_FUNCTIONS do_configure do_compile do_install