Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/thirdparty/tesseract/nsis/build.sh @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/thirdparty/tesseract/nsis/build.sh Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,111 @@ +#!/bin/bash + +# GitHub actions - Create Tesseract installer for Windows + +# Author: Stefan Weil (2010-2024) + +set -e +set -x + +LANG=C.UTF-8 + +ARCH=$1 + +if [ "$ARCH" = "i686" ]; then + MINGW=/mingw32 +else + ARCH=x86_64 + MINGW=/mingw64 +fi + +ROOTDIR=$PWD +DISTDIR=$ROOTDIR/dist +HOST=$ARCH-w64-mingw32 +TAG=$(cat VERSION).$(date +%Y%m%d) +BUILDDIR=bin/ndebug/$HOST-$TAG +PKG_ARCH=mingw-w64-${ARCH/_/-} + +# Install packages. +sudo apt-get update --quiet +sudo apt-get install --assume-yes --no-install-recommends --quiet \ + asciidoc curl xsltproc docbook-xml docbook-xsl \ + automake dpkg-dev libtool pkg-config default-jdk-headless \ + mingw-w64-tools nsis g++-"$PKG_ARCH" \ + makepkg pacman-package-manager python3-venv unzip + +# Configure pacman. + +# Enable mirrorlist. +sudo sed -Ei 's/^#.*(Include.*mirrorlist)/\1/' /etc/pacman.conf +( +# Add msys key for pacman. +cd /usr/share/keyrings +sudo curl -OsS https://raw.githubusercontent.com/msys2/MSYS2-keyring/master/msys2.gpg +sudo curl -OsS https://raw.githubusercontent.com/msys2/MSYS2-keyring/master/msys2-revoked +sudo curl -OsS https://raw.githubusercontent.com/msys2/MSYS2-keyring/master/msys2-trusted +) +( +# Add active environments for pacman. +# See https://www.msys2.org/docs/repos-mirrors/. +sudo mkdir -p /etc/pacman.d +cd /etc/pacman.d +cat <<eod | sudo tee mirrorlist >/dev/null +[mingw64] +Include = /etc/pacman.d/mirrorlist.mingw +eod +sudo curl -OsS https://raw.githubusercontent.com/msys2/MSYS2-packages/master/pacman-mirrors/mirrorlist.mingw +# sudo curl -OsS https://raw.githubusercontent.com/msys2/MSYS2-packages/master/pacman-mirrors/mirrorlist.msys +) + +sudo pacman-key --init +sudo pacman-key --populate msys2 +sudo pacman -Syu --noconfirm + +# Install required pacman packages. +sudo pacman -S --noconfirm \ + mingw-w64-x86_64-curl-winssl \ + mingw-w64-x86_64-giflib \ + mingw-w64-x86_64-icu \ + mingw-w64-x86_64-leptonica \ + mingw-w64-x86_64-libarchive \ + mingw-w64-x86_64-libidn2 \ + mingw-w64-x86_64-openjpeg2 \ + mingw-w64-x86_64-openssl \ + mingw-w64-x86_64-pango \ + mingw-w64-x86_64-libpng \ + mingw-w64-x86_64-libtiff \ + mingw-w64-x86_64-libwebp + +git config --global user.email "sw@weilnetz.de" +git config --global user.name "Stefan Weil" +git tag -a "v$TAG" -m "Tesseract $TAG" + +# Run autogen. +./autogen.sh + +# Build Tesseract installer. +mkdir -p "$BUILDDIR" && cd "$BUILDDIR" + +# Run configure. +PKG_CONFIG_PATH=$MINGW/lib/pkgconfig +export PKG_CONFIG_PATH +# Disable OpenMP (see https://github.com/tesseract-ocr/tesseract/issues/1662). +../../../configure --disable-openmp --host="$HOST" --prefix="/usr/$HOST" \ + CXX="$HOST-g++-posix" \ + CXXFLAGS="-fno-math-errno -Wall -Wextra -Wpedantic -g -O2 -isystem $MINGW/include" \ + LDFLAGS="-L$MINGW/lib" + +make all training +MINGW_INSTALL=${PWD}${MINGW} +make install-jars install training-install html prefix="$MINGW_INSTALL" INSTALL_STRIP_FLAG=-s +test -d venv || python3 -m venv venv +source venv/bin/activate +pip install pefile +mkdir -p dll +ln -sv $("$ROOTDIR/nsis/find_deps.py" "$MINGW_INSTALL"/bin/*.exe "$MINGW_INSTALL"/bin/*.dll) dll/ +ln -svf /usr/lib/gcc/x86_64-w64-mingw32/*-win32/libstdc++-6.dll dll/ +ln -svf /usr/lib/gcc/x86_64-w64-mingw32/*-win32/libgcc_s_seh-1.dll dll/ +make winsetup prefix="$MINGW_INSTALL" + +# Copy result for upload. +mkdir -p "$DISTDIR" && cp nsis/tesseract-ocr-w*-setup-*.exe "$DISTDIR"
