diff options
Diffstat (limited to 'bitbake/lib/bb/utils.py')
-rw-r--r-- | bitbake/lib/bb/utils.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 7ba1234578..5ac9bcfbd4 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
@@ -131,6 +131,28 @@ def vercmp_string(a, b): | |||
131 | tb = split_version(b) | 131 | tb = split_version(b) |
132 | return vercmp(ta, tb) | 132 | return vercmp(ta, tb) |
133 | 133 | ||
134 | def vercmp_string_op(a, b, op): | ||
135 | """ | ||
136 | Compare two versions and check if the specified comparison operator matches the result of the comparison. | ||
137 | This function is fairly liberal about what operators it will accept since there are a variety of styles | ||
138 | depending on the context. | ||
139 | """ | ||
140 | res = vercmp_string(a, b) | ||
141 | if op in ('=', '=='): | ||
142 | return res == 0 | ||
143 | elif op == '<=': | ||
144 | return res <= 0 | ||
145 | elif op == '>=': | ||
146 | return res >= 0 | ||
147 | elif op in ('>', '>>'): | ||
148 | return res > 0 | ||
149 | elif op in ('<', '<<'): | ||
150 | return res < 0 | ||
151 | elif op == '!=': | ||
152 | return res != 0 | ||
153 | else: | ||
154 | raise VersionStringException('Unsupported comparison operator "%s"' % op) | ||
155 | |||
134 | def explode_deps(s): | 156 | def explode_deps(s): |
135 | """ | 157 | """ |
136 | Take an RDEPENDS style string of format: | 158 | Take an RDEPENDS style string of format: |