@@ -75,6 +75,17 @@ def read_defines_from(header_file, defines_dict):
75
75
# strip trailing comments
76
76
line = re .sub (r"(?<=\S)\s*//.*$" , "" , line )
77
77
78
+ # look for "// old_comment BLAH_BLAH=42" and suggest changing it to "new_macro(BLAH_BLAH, 42)"
79
+ for (old_comment , new_macro ) in (
80
+ ('pico_cmake_set' , 'pico_board_cmake_set' ),
81
+ ('pico_cmake_set_default' , 'pico_board_cmake_set_default' )
82
+ ):
83
+ m = re .match (r"^\s*//\s*{}\s+(\w+)\s*=\s*(.+?)\s*$" .format (old_comment ), line )
84
+ if m :
85
+ name = m .group (1 )
86
+ value = m .group (2 )
87
+ raise Exception ("{}:{} \" // {} {}={}\" should be replaced with \" {}({}, {})\" " .format (board_header , lineno , old_comment , name , value , new_macro , name , value ))
88
+
78
89
# look for "pico_board_cmake_set(BLAH_BLAH, 42)"
79
90
m = re .match (r"^\s*pico_board_cmake_set\s*\(\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*,\s*(.*)\s*\)\s*$" , line )
80
91
if m :
@@ -87,10 +98,10 @@ def read_defines_from(header_file, defines_dict):
87
98
# check for multiply-defined values
88
99
if name in cmake_settings :
89
100
if cmake_settings [name ].value != value :
90
- raise Exception ("{}:{} Conflicting values for pico_board_cmake_set {} ({} and {})" .format (board_header , lineno , name , cmake_settings [name ].value , value ))
101
+ raise Exception ("{}:{} Conflicting values for pico_board_cmake_set({}) ({} and {})" .format (board_header , lineno , name , cmake_settings [name ].value , value ))
91
102
else :
92
103
if show_warnings :
93
- warnings .warn ("{}:{} Multiple values for pico_board_cmake_set {} ({} and {})" .format (board_header , lineno , name , cmake_settings [name ].value , value ))
104
+ warnings .warn ("{}:{} Multiple values for pico_board_cmake_set({}) ({} and {})" .format (board_header , lineno , name , cmake_settings [name ].value , value ))
94
105
else :
95
106
cmake_settings [name ] = DefineType (name , value , None , lineno )
96
107
continue
@@ -223,6 +234,17 @@ def read_defines_from(header_file, defines_dict):
223
234
raise Exception ("{}:{} Suggests including \" {}\" but file is named \" {}\" " .format (board_header , lineno , include_suggestion , expected_include_suggestion ))
224
235
continue
225
236
237
+ # look for "// old_comment BLAH_BLAH=42" and suggest changing it to "new_macro(BLAH_BLAH, 42)"
238
+ for (old_comment , new_macro ) in (
239
+ ('pico_cmake_set' , 'pico_board_cmake_set' ),
240
+ ('pico_cmake_set_default' , 'pico_board_cmake_set_default' )
241
+ ):
242
+ m = re .match (r"^\s*//\s*{}\s+(\w+)\s*=\s*(.+?)\s*$" .format (old_comment ), line )
243
+ if m :
244
+ name = m .group (1 )
245
+ value = m .group (2 )
246
+ raise Exception ("{}:{} \" // {} {}={}\" should be replaced with \" {}({}, {})\" " .format (board_header , lineno , old_comment , name , value , new_macro , name , value ))
247
+
226
248
# look for "pico_board_cmake_set(BLAH_BLAH, 42)"
227
249
m = re .match (r"^\s*pico_board_cmake_set\s*\(\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*,\s*(.*)\s*\)\s*$" , line )
228
250
if m :
@@ -234,7 +256,7 @@ def read_defines_from(header_file, defines_dict):
234
256
raise Exception ("{}:{} Expected \" {}\" to be all uppercase" .format (board_header , lineno , name ))
235
257
# check for multiply-defined values
236
258
if name in cmake_settings :
237
- raise Exception ("{}:{} Multiple values for pico_board_cmake_set {} ({} and {})" .format (board_header , lineno , name , cmake_settings [name ].value , value ))
259
+ raise Exception ("{}:{} Multiple values for pico_board_cmake_set({}) ({} and {})" .format (board_header , lineno , name , cmake_settings [name ].value , value ))
238
260
else :
239
261
if value :
240
262
try :
@@ -256,7 +278,7 @@ def read_defines_from(header_file, defines_dict):
256
278
raise Exception ("{}:{} Expected \" {}\" to be all uppercase" .format (board_header , lineno , name ))
257
279
# check for multiply-defined values
258
280
if name in cmake_default_settings :
259
- raise Exception ("{}:{} Multiple values for pico_board_cmake_set_default {} ({} and {})" .format (board_header , lineno , name , cmake_default_settings [name ].value , value ))
281
+ raise Exception ("{}:{} Multiple values for pico_board_cmake_set_default({}) ({} and {})" .format (board_header , lineno , name , cmake_default_settings [name ].value , value ))
260
282
else :
261
283
if value :
262
284
try :
@@ -382,7 +404,7 @@ def read_defines_from(header_file, defines_dict):
382
404
else :
383
405
for setting in compulsory_cmake_settings :
384
406
if setting not in cmake_settings :
385
- raise Exception ("{} is missing a pico_board_cmake_set {} comment " .format (board_header , setting ))
407
+ raise Exception ("{} is missing a pico_board_cmake_set({}, XXX) call " .format (board_header , setting ))
386
408
if cmake_settings ['PICO_PLATFORM' ].value == "rp2040" :
387
409
chip = 'RP2040'
388
410
other_chip = 'RP2350'
@@ -399,19 +421,19 @@ def read_defines_from(header_file, defines_dict):
399
421
chip = 'RP2350B'
400
422
if not board_header .endswith ("amethyst_fpga.h" ):
401
423
if 'PICO_RP2350_A2_SUPPORTED' not in cmake_default_settings :
402
- raise Exception ("{} uses chip {} but is missing a pico_board_cmake_set_default {} comment " .format (board_header , chip , 'PICO_RP2350_A2_SUPPORTED' ))
424
+ raise Exception ("{} uses chip {} but is missing a pico_board_cmake_set_default({}, XXX) call " .format (board_header , chip , 'PICO_RP2350_A2_SUPPORTED' ))
403
425
if 'PICO_RP2350_A2_SUPPORTED' not in defines :
404
426
raise Exception ("{} uses chip {} but is missing a #define {}" .format (board_header , chip , 'PICO_RP2350_A2_SUPPORTED' ))
405
427
if defines ['PICO_RP2350_A2_SUPPORTED' ].resolved_value != 1 :
406
428
raise Exception ("{} sets #define {} {} (should be 1)" .format (board_header , chip , 'PICO_RP2350_A2_SUPPORTED' , defines ['PICO_RP2350_A2_SUPPORTED' ].resolved_value ))
407
429
for setting in compulsory_cmake_default_settings :
408
430
if setting not in cmake_default_settings :
409
- raise Exception ("{} is missing a pico_board_cmake_set_default {} comment " .format (board_header , setting ))
431
+ raise Exception ("{} is missing a pico_board_cmake_set_default({}, XXX) call " .format (board_header , setting ))
410
432
for setting in matching_cmake_default_settings :
411
433
if setting in cmake_default_settings and setting not in defines :
412
- raise Exception ("{} has pico_board_cmake_set_default {} but is missing a matching #define" .format (board_header , setting ))
434
+ raise Exception ("{} has pico_board_cmake_set_default({}, XXX) but is missing a matching #define" .format (board_header , setting ))
413
435
elif setting in defines and setting not in cmake_default_settings :
414
- raise Exception ("{} has #define {} but is missing a matching pico_board_cmake_set_default comment " .format (board_header , setting ))
436
+ raise Exception ("{} has #define {} but is missing a matching pico_board_cmake_set_default({}, XXX) call " .format (board_header , setting , setting ))
415
437
elif setting in defines and setting in cmake_default_settings :
416
438
if cmake_default_settings [setting ].value != defines [setting ].resolved_value :
417
439
raise Exception ("{} has mismatched pico_board_cmake_set_default and #define values for {}" .format (board_header , setting ))
0 commit comments