[gnome-builder/wip/tingping/meson-dist] meson-build: Add builder-dist target



commit 70da0b10f1f54737f020c5477bb9694ad64466a4
Author: Patrick Griffis <tingping tingping se>
Date:   Tue Apr 25 04:08:25 2017 -0400

    meson-build: Add builder-dist target

 build/meson/meson_dist.sh |   49 +++++++++++++++++++++++++++++++++++++++++++++
 meson.build               |    8 +++++++
 2 files changed, 57 insertions(+), 0 deletions(-)
---
diff --git a/build/meson/meson_dist.sh b/build/meson/meson_dist.sh
new file mode 100755
index 0000000..53375e8
--- /dev/null
+++ b/build/meson/meson_dist.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+
+set -euf -o pipefail
+
+version=$1
+archive_file=gnome-builder-$version.tar.xz
+prefix=gnome-builder-$version/
+
+pushd $MESON_SOURCE_ROOT
+
+if ! git config tar.tar.xz.command > /dev/null; then
+  echo "Setting git archive format for tar.xz"
+  git config tar.tar.xz.command "xz -c"
+fi
+
+if [ -e $archive_file ]; then
+  echo "Archive $archive_file already existed, reusing"
+else
+  # TODO: Rely on tag existing?
+  echo "Creating tarball $archive_file of HEAD" 
+  git archive --format=tar.xz --output=$archive_file --prefix=$prefix HEAD
+fi
+
+temp=$(mktemp -d)
+srcdir=$temp/source
+blddir=$temp/build
+instdir=$temp/install
+
+mkdir $srcdir
+tar -xf $archive_file -C $srcdir
+
+# Test read-only source dir
+chmod 500 $srcdir
+
+pushd $srcdir/$prefix
+meson $blddir
+pushd $blddir
+
+# FIXME: Tests currently fail on both autotools and meson
+#ninja test
+env DESTDIR=$instdir ninja install
+
+popd
+popd
+popd
+
+chmod 700 $srcdir
+rm -rf $temp
+echo "Everything succeeded!"
\ No newline at end of file
diff --git a/meson.build b/meson.build
index 511da29..fb17434 100644
--- a/meson.build
+++ b/meson.build
@@ -226,3 +226,11 @@ executable('gnome-builder-worker', 'src/main.c',
 )
 
 meson.add_install_script('build/meson/meson_post_install.py')
+
+# 'dist' will be used by meson, avoid conflicting
+run_target('builder-dist',
+  command: [
+    find_program('build/meson/meson_dist.sh'),
+    meson.project_version(),
+  ]
+)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]