diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-07-11 22:10:38 +0200 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-07-31 17:50:02 +0200 |
commit | bee74eea16b4f7849c154706398224c9a542c4bd (patch) | |
tree | 819b186c5235e9b77967548954849ba3e23c10a4 /mesonbuild/cmake/traceparser.py | |
parent | 679ddb0ae780bfd4d81c586b0512255c0d1e24b6 (diff) | |
download | meson-bee74eea16b4f7849c154706398224c9a542c4bd.zip meson-bee74eea16b4f7849c154706398224c9a542c4bd.tar.gz meson-bee74eea16b4f7849c154706398224c9a542c4bd.tar.bz2 |
cmake: Parse a subset of generator expressions
Diffstat (limited to 'mesonbuild/cmake/traceparser.py')
-rw-r--r-- | mesonbuild/cmake/traceparser.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mesonbuild/cmake/traceparser.py b/mesonbuild/cmake/traceparser.py index 6106d16..3a3f269 100644 --- a/mesonbuild/cmake/traceparser.py +++ b/mesonbuild/cmake/traceparser.py @@ -16,6 +16,7 @@ # or an interpreter-based tool. from .common import CMakeException +from .generator import parse_generator_expressions from .. import mlog from typing import List, Tuple, Optional @@ -448,7 +449,6 @@ class CMakeTraceParser: # The trace format is: '<file>(<line>): <func>(<args -- can contain \n> )\n' reg_tline = re.compile(r'\s*(.*\.(cmake|txt))\(([0-9]+)\):\s*(\w+)\(([\s\S]*?) ?\)\s*\n', re.MULTILINE) reg_other = re.compile(r'[^\n]*\n') - reg_genexp = re.compile(r'\$<.*>') loc = 0 while loc < len(trace): mo_file_line = reg_tline.match(trace, loc) @@ -466,9 +466,10 @@ class CMakeTraceParser: file = mo_file_line.group(1) line = mo_file_line.group(3) func = mo_file_line.group(4) - args = mo_file_line.group(5).split(' ') + args = mo_file_line.group(5) + args = parse_generator_expressions(args) + args = args.split(' ') args = list(map(lambda x: x.strip(), args)) - args = list(map(lambda x: reg_genexp.sub('', x), args)) # Remove generator expressions yield CMakeTraceLine(file, line, func, args) |