19
19
from libomputils import ScriptError , error
20
20
21
21
22
+ class TargetPlatform :
23
+ """Convenience class for handling the target platform for configuration/compilation"""
24
+
25
+ system_override = None
26
+ """
27
+ Target system name override by the user.
28
+ It follows the conventions from https://docs.python.org/3/library/platform.html#platform.system
29
+ """
30
+
31
+ def set_system_override (override_system ):
32
+ """
33
+ Set a system override for the target.
34
+ Please follow the style from https://docs.python.org/3/library/platform.html#platform.system
35
+ """
36
+ TargetPlatform .system_override = override_system
37
+
38
+ def system ():
39
+ """
40
+ Target System name.
41
+ It follows the conventions from https://docs.python.org/3/library/platform.html#platform.system
42
+ """
43
+ if TargetPlatform .system_override is None :
44
+ return platform .system ()
45
+ return TargetPlatform .system_override
46
+
47
+
22
48
class ParseMessageDataError (ScriptError ):
23
49
"""Convenience class for parsing message data file errors"""
24
50
@@ -55,7 +81,7 @@ def __init__(self, lineNumber, name, text):
55
81
self .text = text
56
82
57
83
def toSrc (self ):
58
- if platform .system () == "Windows" :
84
+ if TargetPlatform .system (). casefold () == "Windows" . casefold () :
59
85
return re .sub (r"%([0-9])\$(s|l?[du])" , r"%\1!\2!" , self .text )
60
86
return str (self .text )
61
87
@@ -363,6 +389,13 @@ def main():
363
389
parser .add_argument (
364
390
"--message" , metavar = "FILE" , help = "Generate message file named FILE"
365
391
)
392
+ parser .add_argument (
393
+ "--target-system-override" ,
394
+ metavar = "TARGET_SYSTEM_NAME" ,
395
+ help = "Target System override.\n "
396
+ "By default the target system is the host system\n "
397
+ "See possible values at https://docs.python.org/3/library/platform.html#platform.system" ,
398
+ )
366
399
parser .add_argument ("inputfile" )
367
400
commandArgs = parser .parse_args ()
368
401
@@ -371,14 +404,16 @@ def main():
371
404
return
372
405
data = MessageData .create (commandArgs .inputfile )
373
406
prefix = commandArgs .prefix
407
+ if commandArgs .target_system_override :
408
+ TargetPlatform .set_system_override (commandArgs .target_system_override )
374
409
if commandArgs .enum :
375
410
generate_enum_file (commandArgs .enum , prefix , data )
376
411
if commandArgs .default :
377
412
generate_default_messages_file (commandArgs .default , prefix , data )
378
413
if commandArgs .signature :
379
414
generate_signature_file (commandArgs .signature , data )
380
415
if commandArgs .message :
381
- if platform .system () == "Windows" :
416
+ if TargetPlatform .system (). casefold () == "Windows" . casefold () :
382
417
generate_message_file_windows (commandArgs .message , data )
383
418
else :
384
419
generate_message_file_unix (commandArgs .message , data )
0 commit comments