diff --git a/pdns/generate-bind-dnssec-schema.py b/pdns/generate-bind-dnssec-schema.py new file mode 100644 index 000000000000..0a04349511c0 --- /dev/null +++ b/pdns/generate-bind-dnssec-schema.py @@ -0,0 +1,15 @@ +"""Produce BIND DNSSEC schema usable from C.""" + +import sys + +sql_filename = sys.argv[1] + +with open(sql_filename, mode="r", encoding="utf-8") as f_in: + contents = f_in.read() + + print("#pragma once") + print() + print("static char sqlCreate[] __attribute__((unused)) =") + for line in contents.split("\n"): + print(f'"{line}"') + print(";") diff --git a/pdns/meson.build b/pdns/meson.build index c8ef0199e14c..4b161e11f256 100644 --- a/pdns/meson.build +++ b/pdns/meson.build @@ -1,3 +1,21 @@ +libpdns_bind_dnssec_schema = custom_target( + 'libpdns-bind-dnssec-schema', + command: [ + python_prog, + '@INPUT0@', + '@INPUT1@', + ], + input: [ + 'generate-bind-dnssec-schema.py', + 'bind-dnssec.schema.sqlite3.sql', + ], + output: 'bind-dnssec.schema.sqlite3.sql.h', + capture: true, +) +libpdns_bind_dnssec_schema = declare_dependency( + sources: [libpdns_bind_dnssec_schema], +) + libpdns_bind_parser = declare_dependency( link_with: static_library( 'pdns-bind-parser', @@ -162,7 +180,6 @@ libpdns = declare_dependency( 'backends/gsql/ssql.hh', 'base32.hh', 'base64.hh', - 'bind-dnssec.schema.sqlite3.sql.h', 'burtle.hh', 'cachecleaner.hh', 'circular_buffer.hh', @@ -228,6 +245,7 @@ libpdns = declare_dependency( ], dependencies: [ deps, + libpdns_bind_dnssec_schema, libpdns_bind_parser, libpdns_lua, libpdns_lua_records,