diff --git a/.gitignore b/.gitignore index 635e1743..83eb8502 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,8 @@ ISLE.EXE LEGO1.DLL build/ *.swp + +# Stuff generated by the preprocessor and/or tools/makectx.py *.i +*.obj +ctx.h \ No newline at end of file diff --git a/tools/makectx.py b/tools/makectx.py index 66a5bf78..29dec232 100644 --- a/tools/makectx.py +++ b/tools/makectx.py @@ -1,15 +1,29 @@ #!/usr/bin/python3 import argparse import os +import subprocess -parser = argparse.ArgumentParser(allow_abbrev=False, - description='Verify Exports: Compare the exports of two DLLs.') -parser.add_argument('cppfile', metavar='cppfile', help='Path to the C++ File to preprocess.') +parser = argparse.ArgumentParser( + allow_abbrev=False, description="Verify Exports: Compare the exports of two DLLs." +) +parser.add_argument( + "cppfile", metavar="cppfile", help="Path to the C++ File to preprocess." +) +parser.add_argument( + "--debug", + action="store_true", + help="Print debug information by showing the output from the preprocessor. THIS WILL TAKE A LONG TIME AS YOUR TERMINAL TRIES TO LOAD OVER 100K LINES OF TEXT. Use this if your context contains an error or is empty.", +) args = parser.parse_args() if not os.path.isfile(args.cppfile): - parser.error('Specified C++ file does not exist.') + parser.error("Specified C++ file does not exist.") -os.system('cl.exe /EP /P ' + args.cppfile) +output = subprocess.run( + "cl.exe /EP " + args.cppfile, capture_output=not args.debug, text=True +) -print('Preprocessed file. It will be in the directory you executed in this command as "(filename).i".') \ No newline at end of file +f = open("ctx.h", "w") +f.write(output.stdout) + +print("Preprocessed file to ctx.h")