Skip to content

Commit d0ad980

Browse files
committed
[build-script] Implement setattr on StageArgs.
In case people want to override staged args in funky ways.
1 parent c3d0940 commit d0ad980

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

utils/swift_build_support/swift_build_support/compiler_stage.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,25 @@
1212

1313
class StageArgs(object):
1414
def __init__(self, stage, args):
15-
self.stage = stage
16-
self.args = args
15+
self.__dict__['postfix'] = stage.postfix
16+
self.__dict__['stage'] = stage
17+
self.__dict__['args'] = args
1718
assert(not isinstance(self.args, StageArgs))
1819

20+
def _get_stage_prefix(self):
21+
return self.__dict__['postfix']
22+
1923
def __getattr__(self, key):
20-
real_key = '{}{}'.format(key, self.stage.postfix)
21-
if not hasattr(self.args, real_key):
24+
real_key = '{}{}'.format(key, self._get_stage_prefix())
25+
args = self.__dict__['args']
26+
if not hasattr(args, real_key):
2227
return None
23-
return getattr(self.args, real_key)
28+
return getattr(args, real_key)
29+
30+
def __setattr__(self, key, value):
31+
real_key = '{}{}'.format(key, self._get_stage_prefix())
32+
args = self.__dict__['args']
33+
setattr(args, real_key, value)
2434

2535

2636
class Stage(object):

0 commit comments

Comments
 (0)