[Libosinfo] [osinfo-db-tools PATCH 4/8] prepare-release: Adapt to use meson

Fabiano Fidêncio fidencio at redhat.com
Thu Jun 20 15:21:23 UTC 2019


Let's adapt the prepare-release script to use meson build system instead
of autotools.

This change has been tested and is working fine on Fedora 30+.

Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
 prepare-release.sh | 83 ++++++++++++++--------------------------------
 1 file changed, 25 insertions(+), 58 deletions(-)

diff --git a/prepare-release.sh b/prepare-release.sh
index 731b4e4..ea67322 100755
--- a/prepare-release.sh
+++ b/prepare-release.sh
@@ -7,90 +7,57 @@ test -n "$1" && RESULTS=$1 || RESULTS=results.log
 INSTALL_ROOT=$HOME/builder
 
 # Make things clean.
-test -f Makefile && make -k distclean || :
+git clean -xfd || :
 
-rm -rf build
-mkdir build
-cd build
+meson build --prefix=$INSTALL_ROOT --werror
 
-../autogen.sh --prefix=$INSTALL_ROOT \
-    --enable-werror --enable-gtk-doc
-
-# If the MAKEFLAGS envvar does not yet include a -j option,
-# add -jN where N depends on the number of processors.
-case $MAKEFLAGS in
-  *-j*) ;;
-  *) n=$(getconf _NPROCESSORS_ONLN 2> /dev/null)
-    test "$n" -gt 0 || n=1
-    n=$(expr $n + 1)
-    MAKEFLAGS="$MAKEFLAGS -j$n"
-    export MAKEFLAGS
-    ;;
-esac
-
-make
-make install
+ninja -C build
+ninja -C build install
 
 # set -o pipefail is a bashism; this use of exec is the POSIX alternative
 exec 3>&1
 st=$(
   exec 4>&1 >&3
-  { make check syntax-check 2>&1 3>&- 4>&-; echo $? >&4; } | tee "$RESULTS"
+  { ninja -C build test 2>&1 3>&- 4>&-; echo $? >&4; } | tee "$RESULTS"
 )
 exec 3>&-
 test "$st" = 0
 
-rm -f *.tar.gz
-make dist
+ninja -C build dist
 
 if [ -f /usr/bin/rpmbuild ]; then
   rpmbuild --nodeps \
-     --define "_sourcedir `pwd`" \
-     -ba --clean osinfo-db-tools.spec
+     --define "_sourcedir `pwd`/build/meson-dist/" \
+     -ba --clean build/osinfo-db-tools.spec
 fi
 
 # Test mingw32 cross-compile
-if test -x /usr/bin/i686-w64-mingw32-gcc ; then
-  make distclean
-
-  PKG_CONFIG_PATH="$INSTALL_ROOT/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig" \
-  CC="i686-w64-mingw32-gcc" \
-  ../configure \
-    --build=$(uname -m)-pc-linux \
-    --host=i686-w64-mingw32 \
-    --prefix="$INSTALL_ROOT/i686-w64-mingw32/sys-root/mingw" \
-    --enable-werror \
-    --enable-introspection=no \
-    --enable-tests=no
-
-  make
-  make install
+if test -x /usr/bin/i686-w64-mingw32-gcc && test -r /usr/share/mingw/toolchain-mingw32.meson ; then
+  git clean -xfd || :
+  meson build --prefix="$INSTALL_ROOT/i686-w64-mingw32/sys-root/mingw" --werror --cross-file="/usr/share/mingw/toolchain-mingw32.meson"
 
+  ninja -C build
+  ninja -C build install
 fi
 
 # Test mingw64 cross-compile
-if test -x /usr/bin/x86_64-w64-mingw32-gcc ; then
-  make distclean
-
-  PKG_CONFIG_PATH="$INSTALL_ROOT/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig" \
-  CC="x86_64-w64-mingw32-gcc" \
-  ../configure \
-    --build=$(uname -m)-pc-linux \
-    --host=x86_64-w64-mingw32 \
-    --prefix="$INSTALL_ROOT/i686-w64-mingw32/sys-root/mingw" \
-    --enable-werror \
-    --enable-introspection=no \
-    --enable-tests=no
+if test -x /usr/bin/x86_64-w64-mingw32-gcc && test -r /usr/share/mingw/toolchain-mingw64.meson ; then
+  git clean -xfd || :
 
-  make
-  make install
+  meson build --prefix="$INSTALL_ROOT/x86_64-w64-mingw32/sys-root/mingw" --werror --cross-file="/usr/share/mingw/toolchain-mingw64.meson"
 
+  ninja -C build
+  ninja -C build install
 fi
 
-if test -x /usr/bin/i686-w64-mingw32-gcc && test -x /usr/bin/x86_64-w64-mingw32-gcc ; then
+if test -x /usr/bin/i686-w64-mingw32-gcc && test -r /usr/share/mingw/toolchain-mingw32.meson && test -x /usr/bin/x86_64-w64-mingw32-gcc && test -r /usr/share/mingw/toolchain-mingw64.meson ; then
+  git clean -xfd || :
+  meson build
+  ninja -C build dist
+
   if test -f /usr/bin/rpmbuild ; then
     rpmbuild --nodeps \
-       --define "_sourcedir `pwd`" \
-       -ba --clean mingw-osinfo-db-tools.spec
+       --define "_sourcedir `pwd`/build/meson-dist/" \
+       -ba --clean build/mingw-osinfo-db-tools.spec
   fi
 fi
-- 
2.21.0




More information about the Libosinfo mailing list