Browse Source
This allows bundling much newer zbar that includes many fixes.
related: #6018
This is largely based on
https://github.com/Electron-Cash/Electron-Cash/pull/1362
https://github.com/Electron-Cash/Electron-Cash/pull/1363
https://github.com/Electron-Cash/Electron-Cash/pull/1365
eda015908e
patch-4
committed by
GitHub
7 changed files with 125 additions and 20 deletions
@ -0,0 +1,96 @@ |
|||
#!/bin/bash |
|||
|
|||
# This script can be used on Linux hosts to build native libzbar binaries. |
|||
# sudo apt-get install pkg-config libx11-dev libx11-6 libv4l-dev libxv-dev libxext-dev libjpeg-dev |
|||
# |
|||
# It can also be used to cross-compile to Windows: |
|||
# $ sudo apt-get install mingw-w64 mingw-w64-tools win-iconv-mingw-w64-dev |
|||
# For a Windows x86 (32-bit) target, run: |
|||
# $ GCC_TRIPLET_HOST="i686-w64-mingw32" BUILD_TYPE="wine" ./contrib/make_zbar.sh |
|||
# Or for a Windows x86_64 (64-bit) target, run: |
|||
# $ GCC_TRIPLET_HOST="x86_64-w64-mingw32" BUILD_TYPE="wine" ./contrib/make_zbar.sh |
|||
|
|||
ZBAR_VERSION="d2893738411be897a04caa42ffc13d1f6107d3c6" |
|||
|
|||
set -e |
|||
|
|||
. $(dirname "$0")/build_tools_util.sh || (echo "Could not source build_tools_util.sh" && exit 1) |
|||
|
|||
here=$(dirname $(realpath "$0" 2> /dev/null || grealpath "$0")) |
|||
CONTRIB="$here" |
|||
PROJECT_ROOT="$CONTRIB/.." |
|||
|
|||
pkgname="zbar" |
|||
info "Building $pkgname..." |
|||
|
|||
( |
|||
cd $CONTRIB |
|||
if [ ! -d zbar ]; then |
|||
git clone https://github.com/mchehab/zbar.git |
|||
fi |
|||
cd zbar |
|||
if ! $(git cat-file -e ${ZBAR_VERSION}) ; then |
|||
info "Could not find requested version $ZBAR_VERSION in local clone; fetching..." |
|||
git fetch --all |
|||
fi |
|||
git reset --hard |
|||
git clean -dfxq |
|||
git checkout "${ZBAR_VERSION}^{commit}" |
|||
|
|||
if [ "$BUILD_TYPE" = "wine" ] ; then |
|||
echo "libzbar_la_LDFLAGS += -Wc,-static" >> zbar/Makefile.am |
|||
echo "LDFLAGS += -Wc,-static" >> Makefile.am |
|||
fi |
|||
if ! [ -x configure ] ; then |
|||
autoreconf -vfi || fail "Could not run autoreconf for $pkgname. Please make sure you have automake and libtool installed, and try again." |
|||
fi |
|||
if ! [ -r config.status ] ; then |
|||
if [ "$BUILD_TYPE" = "wine" ] ; then |
|||
# windows target |
|||
./configure \ |
|||
$AUTOCONF_FLAGS \ |
|||
--prefix="$here/$pkgname/dist" \ |
|||
--with-x=no \ |
|||
--enable-pthread=no \ |
|||
--enable-doc=no \ |
|||
--enable-video=yes \ |
|||
--with-directshow=yes \ |
|||
--with-jpeg=no \ |
|||
--with-python=no \ |
|||
--with-gtk=no \ |
|||
--with-qt=no \ |
|||
--with-java=no \ |
|||
--with-imagemagick=no \ |
|||
--with-dbus=no \ |
|||
--enable-codes=qrcode \ |
|||
--disable-dependency-tracking \ |
|||
--disable-static \ |
|||
--enable-shared || fail "Could not configure $pkgname. Please make sure you have a C compiler installed and try again." |
|||
else |
|||
# linux target |
|||
./configure \ |
|||
$AUTOCONF_FLAGS \ |
|||
--prefix="$here/$pkgname/dist" \ |
|||
--with-x=yes \ |
|||
--enable-pthread=no \ |
|||
--enable-doc=no \ |
|||
--enable-video=yes \ |
|||
--with-jpeg=yes \ |
|||
--with-python=no \ |
|||
--with-gtk=no \ |
|||
--with-qt=no \ |
|||
--with-java=no \ |
|||
--with-imagemagick=no \ |
|||
--with-dbus=no \ |
|||
--enable-codes=qrcode \ |
|||
--disable-static \ |
|||
--enable-shared || fail "Could not configure $pkgname. Please make sure you have a C compiler installed and try again." |
|||
fi |
|||
fi |
|||
make -j4 || fail "Could not build $pkgname" |
|||
make install || fail "Could not install $pkgname" |
|||
. "$here/$pkgname/dist/lib/libzbar.la" |
|||
host_strip "$here/$pkgname/dist/lib/$dlname" |
|||
cp -fpv "$here/$pkgname/dist/lib/$dlname" "$PROJECT_ROOT/electrum" || fail "Could not copy the $pkgname binary to its destination" |
|||
info "$dlname has been placed in the inner 'electrum' folder." |
|||
) |
Loading…
Reference in new issue