get_sanitizers()
])
-def get_base_configure_cmd_meson(build_dir, additional_c_flags='', additional_cxx_flags='', enable_systemd=True, enable_sodium=True):
+def get_base_configure_cmd_meson(build_dir, additional_c_flags='', additional_cxx_flags='', enable_systemd=True, enable_sodium=True, src_dir=''):
cflags = " ".join([get_cflags(), additional_c_flags])
cxxflags = " ".join([get_cxxflags(), additional_cxx_flags])
env = " ".join([
f"CXX='{get_cxx_compiler()}'"
])
return " ".join([
- f'{env} meson setup {build_dir}',
+ f'{env} meson setup {build_dir} {src_dir}',
"-D systemd-service={}".format("enabled" if enable_systemd else "disabled"),
"-D signers-libsodium={}".format("enabled" if enable_sodium else "disabled"),
"-D hardening-fortify-source=auto",
ci_auth_configure_autotools(c)
def ci_rec_configure_meson(c, features, build_dir):
+ builder_version = os.getenv('BUILDER_VERSION')
+ dist_dir = '/tmp/rec-meson-dist-build'
+ c.run(f'meson setup {dist_dir} && meson dist -C {dist_dir} --no-tests')
+ with c.cd(f'{dist_dir}/meson-dist'):
+ c.run(f'tar xf pdns-recursor-{builder_version}.tar.xz')
+ src_dir = f'{dist_dir}/meson-dist/pdns-recursor-{builder_version}'
+
unittests = get_unit_tests(meson=True, auth=False)
if features == "full":
configure_cmd = " ".join([
"LDFLAGS='-L/usr/local/lib -Wl,-rpath,/usr/local/lib'",
- get_base_configure_cmd_meson(build_dir),
+ get_base_configure_cmd_meson(build_dir, src_dir=src_dir),
"-D prefix=/opt/pdns-recursor",
"-D dns-over-tls=enabled",
"-D nod=enabled",
else:
configure_cmd = " ".join([
"LDFLAGS='-L/usr/local/lib -Wl,-rpath,/usr/local/lib'",
- get_base_configure_cmd_meson(build_dir),
+ get_base_configure_cmd_meson(build_dir, src_dir=src_dir),
"-D prefix=/opt/pdns-recursor",
"-D dns-over-tls=disabled",
"-D dnstap=disabled",
c.run(f'cat {build_dir}/meson-logs/meson-log.txt')
raise UnexpectedExit(res)
-def ci_rec_configure_autotools(c, features):
+def ci_rec_configure_autotools(c, features, build_dir=None):
unittests = get_unit_tests()
+ out_of_tree_build = build_dir is not None
if features == 'full':
configure_cmd = " ".join([
- get_base_configure_cmd(),
+ get_base_configure_cmd(out_of_tree_build=out_of_tree_build),
"--prefix=/opt/pdns-recursor",
"--enable-option-checking",
"--enable-verbose-logging",
])
else:
configure_cmd = " ".join([
- get_base_configure_cmd(),
+ get_base_configure_cmd(out_of_tree_build=out_of_tree_build),
"--prefix=/opt/pdns-recursor",
"--enable-option-checking",
"--enable-verbose-logging",
if meson:
ci_rec_configure_meson(c, features, build_dir)
else:
- ci_rec_configure_autotools(c, features)
if build_dir:
- ci_make_distdir(c)
+ c.run(f'mkdir -p {build_dir}')
with c.cd(f'{build_dir}'):
- ci_rec_configure_autotools(c, features)
+ ci_rec_configure_autotools(c, features, build_dir)
+ else:
+ ci_rec_configure_autotools(c, features)
@task
def ci_dnsdist_configure(c, features, builder, build_dir):
])
builder_version = os.getenv('BUILDER_VERSION')
- c.run(f'. {repo_home}/.venv/bin/activate && meson setup /tmp/dnsdist-meson-dist-build && meson dist -C /tmp/dnsdist-meson-dist-build --no-tests')
- with c.cd('/tmp/dnsdist-meson-dist-build/meson-dist/'):
+ dist_dir = '/tmp/dnsdist-meson-dist-build'
+
+ c.run(f'. {repo_home}/.venv/bin/activate && meson setup {dist_dir} && meson dist -C {dist_dir} --no-tests')
+ with c.cd(f'{dist_dir}/meson-dist/'):
c.run(f'tar xf dnsdist-{builder_version}.tar.xz')
- src_dir = f'/tmp/dnsdist-meson-dist-build/meson-dist/dnsdist-{builder_version}'
+ src_dir = f'{dist_dir}/meson-dist/dnsdist-{builder_version}'
return " ".join([
f'. {repo_home}/.venv/bin/activate && {env} meson setup {build_dir} {src_dir}',
features_set,