@@ -189,6 +189,16 @@ def __init__(self, branch_data: BranchData, position: Position) -> None:
189
189
self .prefix = branch_data .project_cpp_prefix + '_CONFIG_CHECK'
190
190
self .bypass_checks = self .prefix + '_BYPASS'
191
191
192
+ @staticmethod
193
+ def filename (root : str ,
194
+ branch_data : BranchData ,
195
+ position : Position ) -> str :
196
+ """The file name for this header, under the given root."""
197
+ suffix = f'config_check_{ position .name .lower ()} .h'
198
+ return os .path .join (root ,
199
+ branch_data .header_directory ,
200
+ branch_data .header_prefix + suffix )
201
+
192
202
def write_stanza (self , out : typing_util .Writable , checker : Checker ) -> None :
193
203
"""Write the part of the output corresponding to one config option."""
194
204
code = checker .code (self .position , self .prefix )
@@ -199,8 +209,9 @@ def write_content(self, out: typing_util.Writable) -> None:
199
209
for checker in self .branch_data .checkers :
200
210
self .write_stanza (out , checker )
201
211
202
- def write (self , filename : str ) -> None :
212
+ def write (self , root : str ) -> None :
203
213
"""Write the whole output file."""
214
+ filename = self .filename (root , self .branch_data , self .position )
204
215
with open (filename , 'w' ) as out :
205
216
out .write (f"""\
206
217
/* { os .path .basename (filename )} : checks before including the user configuration file. */
@@ -223,19 +234,19 @@ def write(self, filename: str) -> None:
223
234
def generate_header_files (root : str , branch_data : BranchData ) -> None :
224
235
"""Generate the header files to include before and after *config.h."""
225
236
before_generator = HeaderGenerator (branch_data , Position .BEFORE )
226
- before_generator .write (os .path .join (root ,
227
- branch_data .header_directory ,
228
- branch_data .header_prefix +
229
- 'config_check_before.h' ))
237
+ before_generator .write (root )
230
238
after_generator = HeaderGenerator (branch_data , Position .AFTER )
231
- after_generator .write (os .path .join (root ,
232
- branch_data .header_directory ,
233
- branch_data .header_prefix +
234
- 'config_check_after.h' ))
239
+ after_generator .write (root )
235
240
236
241
237
242
def main (branch_data : BranchData ) -> None :
238
243
parser = argparse .ArgumentParser (description = __doc__ )
239
- _options = parser .parse_args ()
244
+ parser .add_argument ('--list' , action = 'store_true' ,
245
+ help = 'List generated files and exit' )
246
+ options = parser .parse_args ()
240
247
root = build_tree .guess_project_root ()
248
+ if options .list :
249
+ for position in [Position .BEFORE , Position .AFTER ]:
250
+ print (HeaderGenerator .filename (root , branch_data , position ))
251
+ return
241
252
generate_header_files (root , branch_data )
0 commit comments