build: Replace Autotools with Meson
Quick rundown of benefits: - Much faster: - Autotools (with autogen): 22 seconds - Meson: 7 seconds - Meson (with ccache): 2 seconds - Simpler: - ~1000 lines smaller - Single simple language - Potentially better Windows (Visual Studio) support What is not done: - Complete Windows support - OSX support (easy) Closes #2013 Closes #1937 Closes #1803
This commit is contained in:
29
plugins/perl/generate_header.py
Executable file
29
plugins/perl/generate_header.py
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
from os.path import basename
|
||||
|
||||
out_file = sys.argv[1]
|
||||
in_files = sys.argv[2:]
|
||||
|
||||
|
||||
def escape_perl(file):
|
||||
ret = ''
|
||||
for line in file:
|
||||
# Escape " and \, strip empty space, shove in C strings.
|
||||
ret += '"' + line.strip().replace('\\', '\\\\').replace('"', '\\"') + '\\n"\n'
|
||||
return ret
|
||||
|
||||
|
||||
with open(out_file, 'w') as o:
|
||||
o.write('"BEGIN {\\n"\n')
|
||||
for in_file in in_files:
|
||||
o.write("\"$INC{{'{}'}} = 'Compiled into the plugin.';\\n\"\n".format(basename(in_file)))
|
||||
o.write('"}\\n"\n')
|
||||
|
||||
for in_file in in_files:
|
||||
o.write('"{\\n"\n')
|
||||
o.write('"#line 1 \\"{}\\"\\n"\n'.format(basename(in_file)))
|
||||
with open(in_file) as i:
|
||||
o.write(escape_perl(i))
|
||||
o.write('"}\\n"\n')
|
||||
Reference in New Issue
Block a user