[Libosinfo] [osinfo-db-tools PATCH v2 11/16] prepare-release: Adapt to use meson

Fabiano Fidêncio fidencio at redhat.com
Tue Jul 9 10:47:39 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 | 78 ++++++++++++++--------------------------------
 1 file changed, 24 insertions(+), 54 deletions(-)

diff --git a/prepare-release.sh b/prepare-release.sh
index e95a177..5f886c5 100755
--- a/prepare-release.sh
+++ b/prepare-release.sh
@@ -7,86 +7,56 @@ test -n "$1" && RESULTS=$1 || RESULTS=results.log
 INSTALL_ROOT=$HOME/builder
 
 # Make things clean.
-test -f Makefile && make -k distclean || :
-
 rm -rf build
-mkdir build
-cd build
-
-../autogen.sh --prefix=$INSTALL_ROOT \
-    --enable-werror
+meson build --prefix=$INSTALL_ROOT --werror
 
-# 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
-
-  make
-  make install
+if test -x /usr/bin/i686-w64-mingw32-gcc && test -r /usr/share/mingw/toolchain-mingw32.meson ; then
+  rm -rf build || :
+  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
+if test -x /usr/bin/x86_64-w64-mingw32-gcc && test -r /usr/share/mingw/toolchain-mingw64.meson ; then
+  rm -rf build || :
 
-  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
+  rm -rf build || :
+  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