CMake: pro2cmake.py: Handle setting a key with $$key in the value

Change-Id: I86552ed2a30f07f8c6060b2bad04fd5489b1d482
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
Tobias Hunger 2019-04-11 17:06:01 +02:00
parent 8f0eb65579
commit 2ec3f492a7

View File

@ -189,7 +189,7 @@ class Operation:
else:
self._value = [str(value), ]
def process(self, input, transformer):
def process(self, key, input, transformer):
assert(False)
def __repr__(self):
@ -212,7 +212,7 @@ class Operation:
class AddOperation(Operation):
def process(self, input, transformer):
def process(self, key, input, transformer):
return input + transformer(self._value)
def __repr__(self):
@ -220,7 +220,7 @@ class AddOperation(Operation):
class UniqueAddOperation(Operation):
def process(self, input, transformer):
def process(self, key, input, transformer):
result = input
for v in transformer(self._value):
if v not in result:
@ -232,11 +232,18 @@ class UniqueAddOperation(Operation):
class SetOperation(Operation):
def process(self, input, transformer):
def process(self, key, input, transformer):
values = [] # typing.List[str]
for v in self._value:
if v != '$$' + key:
values.append(v)
else:
values += input
if transformer:
return list(transformer(self._value))
return list(transformer(values))
else:
return self._value
return values
def __repr__(self):
return '=({})'.format(self._dump())
@ -246,7 +253,7 @@ class RemoveOperation(Operation):
def __init__(self, value):
super().__init__(value)
def process(self, input, transformer):
def process(self, key, input, transformer):
input_set = set(input)
value_set = set(self._value)
result = []
@ -513,7 +520,7 @@ class Scope(object):
op_transformer = lambda files: files
for op in self._operations.get(key, []):
result = op.process(result, op_transformer)
result = op.process(key, result, op_transformer)
for ic in self._included_children:
result = list(ic._evalOps(key, transformer, result))
@ -540,7 +547,8 @@ class Scope(object):
expanded_files = [] # typing.List[str]
for f in files:
expanded_files += self._expand_value(f)
r = self._expand_value(f)
expanded_files += r
mapped_files = list(map(lambda f: map_to_file(f, self, is_include=is_include), expanded_files))
@ -568,7 +576,7 @@ class Scope(object):
if match.group(0) == value:
return self.get(match.group(1))
replacement = self.expand(match.group(1))
replacement = self.get(match.group(1))
replacement_str = replacement[0] if replacement else ''
result = result[:match.start()] \
+ replacement_str \