Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/thirdparty/zint/win32/README @ 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/zint/win32/README Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,268 @@ +% win32/README 2024-01-18 + +Visual Studio 2022 +------------------ + +To build the Zint library DLL and the command line tool "zint.exe" with PNG +support for x86/Win32: + +Install git (https://git-scm.com/downloads) +Install cmake (https://cmake.org/download/) + +Open a "Developer Command Prompt for VS 2022" (should be available under the +"Visual Studio 2022" tab in the Start menu). + +Make sure git and cmake are in your PATH, e.g. (your paths may differ) + + set "PATH=C:\Program Files\Git\cmd;%PATH%" + set "PATH=C:\Program Files\CMake\bin;%PATH%" + +Download zint, zlib and libpng by going to the directory you want to clone them +into: + + cd <project-directory> + +and cloning each: + + git clone https://git.code.sf.net/p/zint/code zint + git clone https://git.code.sf.net/p/libpng/code lpng + git clone https://github.com/madler/zlib.git zlib + +First build zlib: + + cd zlib + nmake -f win32\Makefile.msc clean + nmake -f win32\Makefile.msc + cd .. + +and then lpng: + + cd lpng + nmake -f scripts\makefile.vcwin32 clean + nmake -f scripts\makefile.vcwin32 + cd .. + +If you now open "%cd%\zint\win32\zint.sln" with Visual Studio 2022, you +should be able to build the Release configuration for Win32. + +"zint.dll" and "zint.exe" will be in "zint\win32\Release". + +To build Zint Studio ("qtZint.exe"), you need to have Qt installed, which +involves signing up for a Qt account and installing the Qt Maintenance Tool. +(https://www.qt.io/download-qt-installer) +Using this tool you can install various versions of Qt and various optional +components. + +The following requires the "MSVC 2019 32-bit" component to be installed. + +As of writing Qt 5.15.2 is the latest release that includes this component and +is used here. Add the location of this component to your PATH, e.g. (your path +may differ): + + set "PATH=C:\Qt\5.15.2\msvc2019\bin;%PATH%" + +Next build the Zint backend Qt library "QtZintDLL.lib": + + cd zint\backend_qt + qmake backend_qt_zintdll.pro + nmake clean + nmake release + cd ..\.. + +Then Zint Studio "qtZint.exe": + + cd zint\frontend_qt + qmake frontend_qt_zintdll.pro + nmake clean + nmake release + cd ..\.. + +This creates "zint\frontend_qt\release\qtZint.exe". It requires the Zint DLL to +run, so add its location to your PATH: + + set "PATH=%cd%\zint\win32\Release;%PATH%" + +You should now be able to run Zint Studio: + + zint\frontend_qt\release\qtZint + + +Visual Studio 2019 and 2017 +--------------------------- + +Solutions for Visual Studio 2019 and 2017 are in sub-directories vs2019 and +vs2017. The steps are the same as for Visual Studio 2022. + + +Visual Studio 2015 +------------------ + +A solution for Visual Studio 2015 is in sub-directory vs2015. The steps are +almost the same as for Visual Studio 2022, except that "rc.exe" may not be +available. If so, you need to install a Windows Kit and then update your PATH, +e.g. (adjust for version): + + set "PATH=C:\Program Files (x86)\Windows Kits\10\bin\10.0.20348.0\x86;%PATH%" + +Recent versions of Qt no longer supply a specific component for Visual Studio +2015 32-bit, but you can use "MSVC 2019 32-bit" instead as it's compatible. + +For information on building a standalone version of Zint Studio using Visual +Studio 2015, see "frontend_qt\howto_build_qzint_using_msvs2015.txt" + + +CMake and Visual Studio +----------------------- + +Zint can also be built using CMake with Visual Studio 2022, 2019, 2017 or 2015. +The following example uses Visual Studio 2019 to build for x86/Win32: + +As above, follow the steps to build zlib and lpng. + +CMake needs to be able to find zlib and lpng. One way to do this (requires +Administrator privileges) is to create two sub-directories in +"C:\Program Files (x86)" called "include" and "lib", and then copy + + "zlib\zlib.h", "zlib\zconf.h", "lpng\png.h", "lpng\pngconf.h" and + "lpng\pnglibconf.h" into "include", and + + "zlib\zlib.lib" and "lpng\libpng.lib" into "lib". + +This example uses Qt 5.15.2 and component "MSVC 2019 32-bit" so install them and +add to path (your path may differ): + + set "PATH=C:\Qt\5.15.2\msvc2019\bin;%PATH%" + +Now build zint: + + cd zint + cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_BUILD_TYPE=Release -B build + cmake --build build --config Release + cd .. + +You should be able to run zint CLI and Zint Studio: + + set "PATH=%cd%\zint\build\backend\Release;%PATH%" + zint\build\frontend\Release\zint.exe + zint\build\frontend_qt\Release\zint-qt.exe + +Note that the program name for Zint Studio when built using CMake is not +"qtZint.exe" but "zint-qt.exe". + +For MSVC 2015 32-bit, MSVC 2017 32-bit and MSVC 2022 32-bit, the zint cmake +equivalents are: + + cmake -G "Visual Studio 14 2015" -DCMAKE_BUILD_TYPE=Release -B build + cmake -G "Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=Release -B build + cmake -G "Visual Studio 17 2022" -A Win32 -DCMAKE_BUILD_TYPE=Release -B build + + +Visual C++ 6 +------------ + +The zint library and command line tool can be built using VC6. + +See "win32\zint_cmdline_vc6\readme.txt" + + +MinGW/MSYS +---------- + +If not already installed, download and run the MinGW Installation Manager setup +(https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/) and +using it install the packages: + + mingw-developer-toolkit-bin + mingw32-base-bin + mingw32-gcc-g++-bin + msys-base-bin + +(This should include mingw32-libz-dll) + +Any reasonably modern version of Qt can be used. The following uses Qt 5.15.2. +Using the Qt Maintenance Tool (see the Visual Studio 2022 instructions above) +install the "MinGW 8.1.0 32-bit" component. + +(Note the Qt MinGW versions actually refer to Mingw-w64, the 64-bit fork of +MinGW, but versions up to 8.1.0 at least are compatible.) + +Open a MinGW/MSYS shell by clicking/running e.g. (your path may differ) + + C:\MinGW\msys\1.0\msys.bat + +As above make sure git and cmake are in your PATH. + +Add the Qt MinGW 8.1.0 32-bit component to your PATH, e.g. (your path may +differ): + + export PATH="/c/Qt/5.15.2/mingw81_32/bin":${PATH} + +Go into the directory you want to use and clone zint and libpng: + + cd <project-directory> + + git clone https://git.code.sf.net/p/zint/code zint + git clone https://git.code.sf.net/p/libpng/code lpng + +To compile lpng on MSYS, a bit of fiddling is needed. Go to the directory: + + cd lpng + +On Windows git usually converts UNIX line endings to DOS ones. Undo this: + + dos2unix * scripts/* + +Attempt to do the usual GNU make: + + ./configure + make + +This will fail with a syntax error. To fix: + + sed -i 's/\r//' pnglibconf.h + +(ignore "preserving permissions" warning if any) + +And then do the make again: + + make + make install + + cd .. + +The lpng includes should be in "/usr/local/include". Tell gcc to search there by +setting C_INCLUDE_PATH: + + export C_INCLUDE_PATH=/usr/local/include + +Now we should be able to build zint normally, except for telling cmake to +generate MSYS compatible makefiles: + + cd zint + + mkdir build + cd build + cmake -G "MSYS Makefiles" .. + make + + cd ../.. + +This creates: + +zint/build/backend/libzint.dll +zint/build/frontend/zint.exe +zint/build/backend_qt/libQZint.lib +zint/build/frontend_qt/zint-qt.exe + +The Zint command line tool "zint.exe" and Zint Studio "zint-qt.exe" need +"libzint.dll" to run so add its location to your PATH: + + export PATH="$(pwd)/zint/build/backend":${PATH} + +You should now be able to run the command line tool: + + zint/build/frontend/zint + +And Zint Studio: + + zint/build/frontend_qt/zint-qt
