diff options
-rw-r--r-- | classes/cpan_build.bbclass | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/classes/cpan_build.bbclass b/classes/cpan_build.bbclass new file mode 100644 index 0000000000..b61a009eed --- /dev/null +++ b/classes/cpan_build.bbclass @@ -0,0 +1,44 @@ +INHIBIT_NATIVE_STAGE_INSTALL = "1" +FILES_${PN} += '${libdir}/perl5' + +def is_crosscompiling(d): + import bb + if not bb.data.inherits_class('native', d): + return "yes" + return "no" + +cpan_build_do_configure () { + if [ ${@is_crosscompiling(d)} == "yes" ]; then + # build for target + . ${STAGING_DIR}/${TARGET_SYS}/perl/config.sh + 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 + else + # build for host + perl Build.PL --installdirs site + fi +} + +cpan_build_do_compile () { + perl Build +} + +cpan_build_do_install () { + if [ ${@is_crosscompiling(d)} == "yes" ]; then + perl Build install + fi +} + +do_stage_append () { + if [ ${@is_crosscompiling(d)} == "no" ]; then + perl Build install + fi +} + +EXPORT_FUNCTIONS do_configure do_compile do_install |