]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Generate files when building the release tarball
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 23 Jun 2025 08:42:56 +0000 (10:42 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 23 Jun 2025 09:17:17 +0000 (11:17 +0200)
Some build systems are very unhappy with `dnsdist-rust-lib/rust/src/lib.rs`
not existing before actually starting the build process (mostly because
of `cargo-vendor`), so let's make their life easier.

Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
pdns/dnsdistdist/dnsdist-rust-lib/meson.build
pdns/dnsdistdist/meson-dist-script.sh
pdns/dnsdistdist/meson.build

index b752e9b413b4535ca83530f5842b14ca3953869a..7f71c01303b779ad96f237418fb17aa5b6b3e4c7 100644 (file)
@@ -18,6 +18,7 @@ generated = [
 python = find_program('python3')
 
 rust_lib_sources = custom_target(
+  'rust-lib-sources',
   command: [python, '@INPUT0@', '@SOURCE_ROOT@', '@SOURCE_ROOT@/dnsdist-rust-lib', '@OUTDIR@'],
   input: sources,
   output: generated,
index 67755c1a247ea4cc3adce1ece133f8dc9f034848..4cf102874741cdf479e4e8945efaab46b64c892b 100755 (executable)
@@ -24,15 +24,28 @@ tar -C "$MESON_SOURCE_ROOT" -hcf - $symlinks | tar -xf - -C "$MESON_PROJECT_DIST
 echo Running autoreconf -vi so distfile is still usable for autotools building
 # Run autoconf for people using autotools to build, this creates a configure sc
 autoreconf -vi
+rm -rf "$MESON_PROJECT_DIST_ROOT"/autom4te.cache
 
-# Generate man pages
 cd "$MESON_PROJECT_BUILD_ROOT"
-meson compile man-pages
-cp -vp *.1 "$MESON_PROJECT_DIST_ROOT"
 
-rm -rf "$MESON_PROJECT_DIST_ROOT"/autom4te.cache
+# Generate YAML documentation
+meson compile yaml-settings-docs
+cp -vp "$MESON_SOURCE_ROOT"/docs/reference/yaml-*.rst "$MESON_PROJECT_DIST_ROOT"/docs/reference/
 
 # Generate a few files to reduce build dependencies
 echo 'If the below command generates an error, remove dnslabeltext.cc from source dir (remains of an autotools build?) and start again with a clean meson setup'
 ninja libdnsdist-common.a.p/dnslabeltext.cc
 cp -vp libdnsdist-common.a.p/dnslabeltext.cc "$MESON_PROJECT_DIST_ROOT"
+
+# Generate rules (selectors, actions)
+meson compile rules
+cp -vp dnsdist-*generated.hh dnsdist-*generated-body.hh "$MESON_PROJECT_DIST_ROOT"
+
+# Generate the sources for our Rust-based library
+meson compile rust-lib-sources
+cp -vp dnsdist-rust-lib/*.cc *.hh "$MESON_PROJECT_DIST_ROOT"/dnsdist-rust-lib/
+cp -vp "$MESON_SOURCE_ROOT"/dnsdist-rust-lib/rust/src/lib.rs "$MESON_PROJECT_DIST_ROOT"/dnsdist-rust-lib/rust/src/
+
+# Generate man pages
+meson compile man-pages
+cp -vp *.1 "$MESON_PROJECT_DIST_ROOT"
index 7b2848785eb0ad7c15fb582474d5ad495f2196ad..92ba36f633cce14e1c524f3fb63f9e69e82ad02d 100644 (file)
@@ -327,6 +327,7 @@ py = import('python')
 python = py.find_installation('python3', required: true)
 
 selectors_actions_sources = custom_target(
+  'rules',
   command: [
     python,
     '@INPUT0@',