@@ -49,6 +49,7 @@ def __init__(
4949 define_symbols = None ,
5050 undefine_symbols = None ,
5151 cflags = "" ,
52+ ccflags = "" ,
5253 compiler = None ,
5354 xml_generator = None ,
5455 keep_xml = False ,
@@ -73,6 +74,8 @@ def __init__(
7374
7475 self .__cflags = cflags
7576
77+ self .__ccflags = ccflags
78+
7679 self .__compiler = compiler
7780
7881 self .__xml_generator = xml_generator
@@ -197,6 +200,26 @@ def cflags(self, val):
197200 def append_cflags (self , val ):
198201 self .__cflags = self .__cflags + ' ' + val
199202
203+ @property
204+ def ccflags (self ):
205+ """
206+ additional cross-compatible flags to pass directly
207+ to internal simulated compiler.
208+ Castxml removes any definitions of its
209+ pre-defined macros (e.g. -fopenmp). To propagate these down to the
210+ compiler, these flags must also be passed here.
211+ See `cc-opt` on castxml's documentation page:
212+ https://github.com/CastXML/CastXML/blob/master/doc/manual/castxml.1.rst
213+ """
214+ return self .__ccflags
215+
216+ @ccflags .setter
217+ def ccflags (self , val ):
218+ self .__ccflags = val
219+
220+ def append_ccflags (self , val ):
221+ self .__ccflags = self .__ccflags + ' ' + val
222+
200223 def __ensure_dir_exists (self , dir_path , meaning ):
201224 if os .path .isdir (dir_path ):
202225 return
@@ -245,6 +268,7 @@ def __init__(
245268 start_with_declarations = None ,
246269 ignore_gccxml_output = False ,
247270 cflags = "" ,
271+ ccflags = "" ,
248272 compiler = None ,
249273 xml_generator = None ,
250274 keep_xml = False ,
@@ -258,7 +282,7 @@ def __init__(
258282 include_paths = include_paths ,
259283 define_symbols = define_symbols ,
260284 undefine_symbols = undefine_symbols ,
261- cflags = cflags ,
285+ ccflags = ccflags ,
262286 compiler = compiler ,
263287 xml_generator = xml_generator ,
264288 keep_xml = keep_xml ,
@@ -398,6 +422,8 @@ def load_xml_generator_configuration(configuration, **defaults):
398422 cfg .keep_xml = value
399423 elif name == 'cflags' :
400424 cfg .cflags = value
425+ elif name == 'ccflags' :
426+ cfg .ccflags = value
401427 elif name == 'flags' :
402428 cfg .flags = value
403429 elif name == 'compiler_path' :
0 commit comments