aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/cmake/traceparser.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-07-11 22:10:38 +0200
committerDaniel Mensinger <daniel@mensinger-ka.de>2019-07-31 17:50:02 +0200
commitbee74eea16b4f7849c154706398224c9a542c4bd (patch)
tree819b186c5235e9b77967548954849ba3e23c10a4 /mesonbuild/cmake/traceparser.py
parent679ddb0ae780bfd4d81c586b0512255c0d1e24b6 (diff)
downloadmeson-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.py7
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)