@@ -75,6 +75,17 @@ def read_defines_from(header_file, defines_dict):
7575 # strip trailing comments
7676 line = re .sub (r"(?<=\S)\s*//.*$" , "" , line )
7777
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+
7889 # look for "pico_board_cmake_set(BLAH_BLAH, 42)"
7990 m = re .match (r"^\s*pico_board_cmake_set\s*\(\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*,\s*(.*)\s*\)\s*$" , line )
8091 if m :
@@ -87,10 +98,10 @@ def read_defines_from(header_file, defines_dict):
8798 # check for multiply-defined values
8899 if name in cmake_settings :
89100 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 ))
91102 else :
92103 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 ))
94105 else :
95106 cmake_settings [name ] = DefineType (name , value , None , lineno )
96107 continue
@@ -223,6 +234,17 @@ def read_defines_from(header_file, defines_dict):
223234 raise Exception ("{}:{} Suggests including \" {}\" but file is named \" {}\" " .format (board_header , lineno , include_suggestion , expected_include_suggestion ))
224235 continue
225236
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+
226248 # look for "pico_board_cmake_set(BLAH_BLAH, 42)"
227249 m = re .match (r"^\s*pico_board_cmake_set\s*\(\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*,\s*(.*)\s*\)\s*$" , line )
228250 if m :
@@ -234,7 +256,7 @@ def read_defines_from(header_file, defines_dict):
234256 raise Exception ("{}:{} Expected \" {}\" to be all uppercase" .format (board_header , lineno , name ))
235257 # check for multiply-defined values
236258 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 ))
238260 else :
239261 if value :
240262 try :
@@ -256,7 +278,7 @@ def read_defines_from(header_file, defines_dict):
256278 raise Exception ("{}:{} Expected \" {}\" to be all uppercase" .format (board_header , lineno , name ))
257279 # check for multiply-defined values
258280 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 ))
260282 else :
261283 if value :
262284 try :
@@ -382,7 +404,7 @@ def read_defines_from(header_file, defines_dict):
382404else :
383405 for setting in compulsory_cmake_settings :
384406 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 ))
386408 if cmake_settings ['PICO_PLATFORM' ].value == "rp2040" :
387409 chip = 'RP2040'
388410 other_chip = 'RP2350'
@@ -399,19 +421,19 @@ def read_defines_from(header_file, defines_dict):
399421 chip = 'RP2350B'
400422 if not board_header .endswith ("amethyst_fpga.h" ):
401423 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' ))
403425 if 'PICO_RP2350_A2_SUPPORTED' not in defines :
404426 raise Exception ("{} uses chip {} but is missing a #define {}" .format (board_header , chip , 'PICO_RP2350_A2_SUPPORTED' ))
405427 if defines ['PICO_RP2350_A2_SUPPORTED' ].resolved_value != 1 :
406428 raise Exception ("{} sets #define {} {} (should be 1)" .format (board_header , chip , 'PICO_RP2350_A2_SUPPORTED' , defines ['PICO_RP2350_A2_SUPPORTED' ].resolved_value ))
407429 for setting in compulsory_cmake_default_settings :
408430 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 ))
410432 for setting in matching_cmake_default_settings :
411433 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 ))
413435 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 ))
415437 elif setting in defines and setting in cmake_default_settings :
416438 if cmake_default_settings [setting ].value != defines [setting ].resolved_value :
417439 raise Exception ("{} has mismatched pico_board_cmake_set_default and #define values for {}" .format (board_header , setting ))
0 commit comments