classes/cpan-base: fix perl version regexp
[openembedded.git] / classes / cpan-base.bbclass
1 #
2 # cpan-base providers various perl related information needed for building
3 # cpan modules
4 #
5 FILES_${PN} += "${libdir}/perl5 ${datadir}/perl5"
6
7 DEPENDS  += "${@["perl", "perl-native"][(bb.data.inherits_class('native', d))]}"
8 RDEPENDS  += "${@["perl", ""][(bb.data.inherits_class('native', d))]}"
9
10 # Determine the staged version of perl from the perl configuration file
11 def get_perl_version(d):
12         import re
13         cfg = bb.data.expand('${STAGING_LIBDIR}/perl/config.sh', d)
14         try:
15                 f = open(cfg, 'r')
16         except IOError:
17                 return None
18         l = f.readlines();
19         f.close();
20         r = re.compile("version='(\d+\.\d+\.\d+)'")
21         for s in l:
22                 m = r.match(s)
23                 if m:
24                         return m.group(1)
25         return None
26
27 # Determine where the library directories are
28 def perl_get_libdirs(d):
29         libdir = bb.data.getVar('libdir', d, 1)
30         libdirs = libdir + '/perl5'
31         return libdirs
32
33 def is_target(d):
34     if not bb.data.inherits_class('native', d):
35         return "yes"
36     return "no"
37
38 def perl_get_version_suffix(d):
39         if bb.data.expand('${PACKAGE_ARCH}', d) != "all":
40                 return '-' + get_perl_version(d)
41         else:
42                 return ''
43
44 PR .= "${@perl_get_version_suffix(d)}"
45
46 PERLLIBDIRS = "${@perl_get_libdirs(d)}"
47
48 FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \
49                     ${PERLLIBDIRS}/auto/*/*/.debug \
50                     ${PERLLIBDIRS}/auto/*/*/*/.debug"