xref: /OK3568_Linux_fs/yocto/poky/meta/classes/perl-version.bbclass (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunPERL_OWN_DIR = ""
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun# Determine the staged version of perl from the perl configuration file
4*4882a593Smuzhiyun# Assign vardepvalue, because otherwise signature is changed before and after
5*4882a593Smuzhiyun# perl is built (from None to real version in config.sh).
6*4882a593Smuzhiyunget_perl_version[vardepvalue] = "${PERL_OWN_DIR}"
7*4882a593Smuzhiyundef get_perl_version(d):
8*4882a593Smuzhiyun    import re
9*4882a593Smuzhiyun    cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/config.sh')
10*4882a593Smuzhiyun    try:
11*4882a593Smuzhiyun        f = open(cfg, 'r')
12*4882a593Smuzhiyun    except IOError:
13*4882a593Smuzhiyun        return None
14*4882a593Smuzhiyun    l = f.readlines();
15*4882a593Smuzhiyun    f.close();
16*4882a593Smuzhiyun    r = re.compile(r"^version='(\d*\.\d*\.\d*)'")
17*4882a593Smuzhiyun    for s in l:
18*4882a593Smuzhiyun        m = r.match(s)
19*4882a593Smuzhiyun        if m:
20*4882a593Smuzhiyun            return m.group(1)
21*4882a593Smuzhiyun    return None
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunPERLVERSION := "${@get_perl_version(d)}"
24*4882a593SmuzhiyunPERLVERSION[vardepvalue] = ""
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun# Determine the staged arch of perl from the perl configuration file
28*4882a593Smuzhiyun# Assign vardepvalue, because otherwise signature is changed before and after
29*4882a593Smuzhiyun# perl is built (from None to real version in config.sh).
30*4882a593Smuzhiyundef get_perl_arch(d):
31*4882a593Smuzhiyun    import re
32*4882a593Smuzhiyun    cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/config.sh')
33*4882a593Smuzhiyun    try:
34*4882a593Smuzhiyun        f = open(cfg, 'r')
35*4882a593Smuzhiyun    except IOError:
36*4882a593Smuzhiyun        return None
37*4882a593Smuzhiyun    l = f.readlines();
38*4882a593Smuzhiyun    f.close();
39*4882a593Smuzhiyun    r = re.compile("^archname='([^']*)'")
40*4882a593Smuzhiyun    for s in l:
41*4882a593Smuzhiyun        m = r.match(s)
42*4882a593Smuzhiyun        if m:
43*4882a593Smuzhiyun            return m.group(1)
44*4882a593Smuzhiyun    return None
45*4882a593Smuzhiyun
46*4882a593SmuzhiyunPERLARCH := "${@get_perl_arch(d)}"
47*4882a593SmuzhiyunPERLARCH[vardepvalue] = ""
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun# Determine the staged arch of perl-native from the perl configuration file
50*4882a593Smuzhiyun# Assign vardepvalue, because otherwise signature is changed before and after
51*4882a593Smuzhiyun# perl is built (from None to real version in config.sh).
52*4882a593Smuzhiyundef get_perl_hostarch(d):
53*4882a593Smuzhiyun    import re
54*4882a593Smuzhiyun    cfg = d.expand('${STAGING_LIBDIR_NATIVE}/perl5/config.sh')
55*4882a593Smuzhiyun    try:
56*4882a593Smuzhiyun        f = open(cfg, 'r')
57*4882a593Smuzhiyun    except IOError:
58*4882a593Smuzhiyun        return None
59*4882a593Smuzhiyun    l = f.readlines();
60*4882a593Smuzhiyun    f.close();
61*4882a593Smuzhiyun    r = re.compile("^archname='([^']*)'")
62*4882a593Smuzhiyun    for s in l:
63*4882a593Smuzhiyun        m = r.match(s)
64*4882a593Smuzhiyun        if m:
65*4882a593Smuzhiyun            return m.group(1)
66*4882a593Smuzhiyun    return None
67