1 # ex:ts=4:sw=4:sts=4:et
2 # -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
4 BitBake Utility Functions
6 This program is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free Software
8 Foundation; either version 2 of the License, or (at your option) any later
11 This program is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License along with
16 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
17 Place, Suite 330, Boston, MA 02111-1307 USA.
19 This file is part of the BitBake build tools.
23 ascii_letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
27 def explode_version(s):
29 alpha_regexp = re.compile('^([a-zA-Z]+)(.*)$')
30 numeric_regexp = re.compile('^(\d+)(.*)$')
33 m = numeric_regexp.match(s)
34 r.append(int(m.group(1)))
37 if s[0] in ascii_letters:
38 m = alpha_regexp.match(s)
45 def vercmp_part(a, b):
46 va = explode_version(a)
47 vb = explode_version(b)
57 if ca == None and cb == None:
68 r = vercmp_part(va, vb)
70 r = vercmp_part(ra, rb)
75 Take an RDEPENDS style string of format:
76 "DEPEND1 (optional version) DEPEND2 (optional version) ..."
77 and return a list of dependencies.
78 Version information is ignored.
91 if flag and i.endswith(')'):
94 #r[-1] += ' ' + ' '.join(j)