summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/cpan-base.bbclass24
-rw-r--r--meta/classes/perl-version.bbclass24
2 files changed, 25 insertions, 23 deletions
diff --git a/meta/classes/cpan-base.bbclass b/meta/classes/cpan-base.bbclass
index 55ac052695..577fcd63ce 100644
--- a/meta/classes/cpan-base.bbclass
+++ b/meta/classes/cpan-base.bbclass
@@ -7,27 +7,7 @@ FILES_${PN} += "${libdir}/perl ${datadir}/perl"
7DEPENDS += "${@["perl", "perl-native"][(bb.data.inherits_class('native', d))]}" 7DEPENDS += "${@["perl", "perl-native"][(bb.data.inherits_class('native', d))]}"
8RDEPENDS_${PN} += "${@["perl", ""][(bb.data.inherits_class('native', d))]}" 8RDEPENDS_${PN} += "${@["perl", ""][(bb.data.inherits_class('native', d))]}"
9 9
10PERL_OWN_DIR = "${@["", "/perl-native"][(bb.data.inherits_class('native', d))]}" 10inherit perl-version
11
12# Determine the staged version of perl from the perl configuration file
13# Assign vardepvalue, because otherwise signature is changed before and after
14# perl is built (from None to real version in config.sh).
15get_perl_version[vardepvalue] = "${PERL_OWN_DIR}"
16def get_perl_version(d):
17 import re
18 cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/config.sh')
19 try:
20 f = open(cfg, 'r')
21 except IOError:
22 return None
23 l = f.readlines();
24 f.close();
25 r = re.compile("^version='(\d*\.\d*\.\d*)'")
26 for s in l:
27 m = r.match(s)
28 if m:
29 return m.group(1)
30 return None
31 11
32def is_target(d): 12def is_target(d):
33 if not bb.data.inherits_class('native', d): 13 if not bb.data.inherits_class('native', d):
@@ -36,5 +16,3 @@ def is_target(d):
36 16
37PERLLIBDIRS = "${libdir}/perl" 17PERLLIBDIRS = "${libdir}/perl"
38PERLLIBDIRS_class-native = "${libdir}/perl-native" 18PERLLIBDIRS_class-native = "${libdir}/perl-native"
39PERLVERSION := "${@get_perl_version(d)}"
40PERLVERSION[vardepvalue] = ""
diff --git a/meta/classes/perl-version.bbclass b/meta/classes/perl-version.bbclass
new file mode 100644
index 0000000000..fafe68a775
--- /dev/null
+++ b/meta/classes/perl-version.bbclass
@@ -0,0 +1,24 @@
1PERL_OWN_DIR = "${@["", "/perl-native"][(bb.data.inherits_class('native', d))]}"
2
3# Determine the staged version of perl from the perl configuration file
4# Assign vardepvalue, because otherwise signature is changed before and after
5# perl is built (from None to real version in config.sh).
6get_perl_version[vardepvalue] = "${PERL_OWN_DIR}"
7def get_perl_version(d):
8 import re
9 cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/config.sh')
10 try:
11 f = open(cfg, 'r')
12 except IOError:
13 return None
14 l = f.readlines();
15 f.close();
16 r = re.compile("^version='(\d*\.\d*\.\d*)'")
17 for s in l:
18 m = r.match(s)
19 if m:
20 return m.group(1)
21 return None
22
23PERLVERSION := "${@get_perl_version(d)}"
24PERLVERSION[vardepvalue] = ""