1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 05:47:35 +00:00

Meta: Add gn build rules for LibWeb

This commit is contained in:
Andrew Kaster 2023-05-05 13:05:39 -06:00 committed by Andrew Kaster
parent 7b3d0fb002
commit 85c8cd5205
60 changed files with 1966 additions and 0 deletions

View file

@ -0,0 +1,38 @@
#!/usr/bin/env python3
r"""
Embeds a file into a StringView, a la #embed from C++23
"""
import argparse
import sys
def main():
parser = argparse.ArgumentParser(
epilog=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('input', help='input file to stringify')
parser.add_argument('-o', '--output', required=True,
help='output file')
parser.add_argument('-n', '--variable-name', required=True,
help='name of the C++ variable')
parser.add_argument('-s', '--namespace', required=False,
help='C++ namespace to put the string into')
args = parser.parse_args()
with open(args.output, 'w') as f:
f.write("#include <AK/StringView.h>\n")
if args.namespace:
f.write(f"namespace {args.namespace} {{\n")
f.write(f"extern StringView {args.variable_name};\n")
f.write(f"StringView {args.variable_name} = R\"~~~(")
with open(args.input, 'r') as input:
for line in input.readlines():
f.write(f"{line}")
f.write(")~~~\"sv;\n")
if args.namespace:
f.write("}\n")
if __name__ == '__main__':
sys.exit(main())