mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
3f33ed3eb9
bmp/emf/ps.c: allow for foreground colour in ULTRA bmp/gif/pcx.c: allow for BARCODE_STDOUT (fflush/fclose) emf.c: hexagon rotation field not used; dont't use float index in font loop; Windows stdout binary mode png.c: remove unused 8-bit; simplify libpng error handling and fclose outfile on error ps.c: fix buffer overflow on colour_to_pscolor() CMYK tif.c: fix BLACKISZERO indexes CODE39: simplify check digit setting reedsol.c: rs_uint_init_gf() log/alog tables must be zeroed ZBarcode_Encode: debug: fix access out-of-bounds on non-NUL-terminated source if length < 10 manual.txt/zint.h: document NUL-terminated strings tests: cover further cases for output (bmp/emf/etc), eci/gb18030/gb2312/sjis, reedsol, AZTEC, CODE39 |
||
---|---|---|
.. | ||
vs2008 | ||
vs2015 | ||
vs2019 | ||
zint_cmdline_vc6 | ||
libzint.vcxproj | ||
README | ||
SetWindowsTargetPlatformVersion.props | ||
test.bat | ||
zint.sln | ||
zint.vcxproj |
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, but you can use "MSVC 2017 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 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