mirror of
https://github.com/fralx/LimeReport.git
synced 2025-09-23 08:29:07 +03:00
Update Zint
This commit is contained in:
309
3rdparty/zint-2.10.0/win32/README
vendored
Normal file
309
3rdparty/zint-2.10.0/win32/README
vendored
Normal file
@@ -0,0 +1,309 @@
|
||||
Visual Studio 2017
|
||||
------------------
|
||||
|
||||
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 2017" (should be available under the
|
||||
"Visual Studio 2017" 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 LOC="-DASMV -DASMINF=" OBJA="inffas32.obj match686.obj"
|
||||
|
||||
cd ..
|
||||
|
||||
and then lpng:
|
||||
|
||||
cd lpng
|
||||
|
||||
cmake -G "Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=Release^
|
||||
-DPNG_BUILD_ZLIB=ON -DZLIB_INCLUDE_DIRS=..\zlib^
|
||||
-DPNG_STATIC=ON -DPNG_SHARED=OFF -B build
|
||||
|
||||
cmake --build build --config Release
|
||||
|
||||
cd ..
|
||||
|
||||
If you now open "%cd%\zint\win32\zint.sln" with Visual Studio 2017, 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 2017 32-bit" component to be installed.
|
||||
|
||||
As of writing Qt 5.14.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.14.2\msvc2017\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
|
||||
------------------
|
||||
|
||||
A solution for Visual Studio 2019 is in sub-directory vs2019. The steps are the
|
||||
same as for Visual Studio 2017. To build lpng use
|
||||
|
||||
cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_BUILD_TYPE=Release^
|
||||
-DPNG_BUILD_ZLIB=ON -DZLIB_INCLUDE_DIRS=..\zlib^
|
||||
-DPNG_STATIC=ON -DPNG_SHARED=OFF -B build
|
||||
|
||||
(note the extra argument "-A Win32"). For Qt, the latest Qt5 version as of
|
||||
writing to support Visual Studio 2019 is 15.5.2. Install this and the
|
||||
"MSVC 2019 32-bit" component. Zint Studio can also be built using Qt6.
|
||||
|
||||
|
||||
Visual Studio 2015
|
||||
------------------
|
||||
|
||||
The solution and project files for Visual Studio 2015 have been moved to the
|
||||
sub-directory vs2015. The steps are almost the same as for Visual Studio 2017,
|
||||
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.19041.0\x86;%PATH%"
|
||||
|
||||
To build lpng use
|
||||
|
||||
cmake -G "Visual Studio 14 2015" -DCMAKE_BUILD_TYPE=Release^
|
||||
-DPNG_BUILD_ZLIB=ON -DZLIB_INCLUDE_DIRS=..\zlib^
|
||||
-DPNG_STATIC=ON -DPNG_SHARED=OFF -B build
|
||||
|
||||
Recent versions of Qt no longer supply a specific component for Visual Studio
|
||||
2015 32-bit, but you can use "MSVC 2017 32-bit" or "MSVC 2019 32-bit" instead as
|
||||
they're 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 2019, 2017 or 2015. The
|
||||
following example uses Visual Studio 2019 to build for x86/Win32:
|
||||
|
||||
As above, cd <project-directory> and clone lpng, zlib and zint into it. Then
|
||||
|
||||
cd zlib
|
||||
ml /safeseh /coff /c contrib/masmx86/match686.asm
|
||||
ml /safeseh /coff /c contrib/masmx86/inffas32.asm
|
||||
nmake -f win32\Makefile.msc LOC="-DASMV -DASMINF=" OBJA="inffas32.obj match686.obj"
|
||||
cd ..
|
||||
|
||||
(compiling the zlib assembler with "SAFESEH" seems to be required when building
|
||||
zint using CMake)
|
||||
|
||||
cd lpng
|
||||
cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_BUILD_TYPE=Release^
|
||||
-DPNG_BUILD_ZLIB=ON -DZLIB_INCLUDE_DIRS=..\zlib^
|
||||
-DPNG_STATIC=ON -DPNG_SHARED=OFF -B build
|
||||
cmake --build build --config Release
|
||||
cd ..
|
||||
|
||||
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\build\Release\libpng16_static.lib" into "lib".
|
||||
|
||||
You may need to rename "libpng16_static.lib" to "libpng.lib" depending on the
|
||||
version of cmake you have.
|
||||
|
||||
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 and MSVC 2017 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
|
||||
|
||||
|
||||
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.14.2.
|
||||
Using the Qt Maintenance Tool (see the Visual Studio 2017 instructions above)
|
||||
install the "MinGW 7.3.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 seem to be 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 7.3.0 32-bit component to your PATH, e.g. (your path may
|
||||
differ):
|
||||
|
||||
export PATH="/c/Qt/5.14.2/mingw73_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
|
Reference in New Issue
Block a user