generic-poky/meta/classes/cpan-base.bbclass
Marcin Juszkiewicz 2aba13054a cpan-base.bbclass: Update the perl depenedencies: (from OE)
* For native modules DEPEND on perl-native and for others DEPEND on perl
  (which in turn depends on perl-native) rather then always depending on
  both perl and perl-native.
* Only RDEPEND for non-native modules rather then both native and non-native.

These changes are to allow you to build native modules without have to build
perl. Previously the dependencies would result in perl being built even
though it didn't actually need to. Thanks to hrw for pointing out what was
happening here.

Revision: 399705dfa7f6a6fd87366a6c0b1058354a5d4312
Ancestor: 5f43096a239a7ac66c7046feb414e8279db8f4bc
Author: lenehan@openembedded.org
Date: 2007-05-30T22:10:32
Branch: org.openembedded.dev

Modified files:
        classes/cpan-base.bbclass



git-svn-id: https://svn.o-hand.com/repos/poky/trunk@3280 311d38ba-8fff-0310-9ca6-ca027cbcb966
2007-11-30 14:04:04 +00:00

56 lines
1.4 KiB
Text

#
# cpan-base providers various perl related information needed for building
# cpan modules
#
FILES_${PN} += "${libdir}/perl5 ${datadir}/perl5"
DEPENDS += "${@["perl", "perl-native"][(bb.data.inherits_class('native', d))]}"
RDEPENDS += "${@["perl", ""][(bb.data.inherits_class('native', d))]}"
# Determine the staged version of perl from the perl configuration file
def get_perl_version(d):
import os, bb, re
cfg = bb.data.expand('${STAGING_DIR}/${HOST_SYS}/perl/config.sh', d)
try:
f = open(cfg, 'r')
except IOError:
return None
l = f.readlines();
f.close();
r = re.compile("version='(\d\.\d\.\d)'")
for s in l:
m = r.match(s)
if m:
return m.group(1)
return None
# Only 5.8.7 and 5.8.4 existed at the time we moved to the new layout
def is_new_perl(d):
ver = get_perl_version(d)
if ver == "5.8.4" or ver == "5.8.7":
return "no"
return "yes"
# Determine where the library directories are
def perl_get_libdirs(d):
import bb
libdir = bb.data.getVar('libdir', d, 1)
if is_new_perl(d) == "yes":
libdirs = libdir + '/perl5'
else:
libdirs = libdir + '/*/*/perl5'
return libdirs
def is_target(d):
import bb
if not bb.data.inherits_class('native', d):
return "yes"
return "no"
IS_NEW_PERL = "${@is_new_perl(d)}"
PERLLIBDIRS = "${@perl_get_libdirs(d)}"
FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \
${PERLLIBDIRS}/auto/*/*/.debug \
${PERLLIBDIRS}/auto/*/*/*/.debug"