mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
c8033695d9
EMF/PCX/PNG/TIF only, i.e. excluding EPS, GIF & SVG) - Add support for specifying scale by X-dimension and resolution with new option `--scalexdimdp` for CLI/Tcl & new API function `ZBarcode_Scale_From_XdimDp()` (+ `ZBarcode_XdimDp_From_Scale()` & `ZBarcode_Default_Xdim()`) and new GUI popup; manual: document - BMP/EMF/PCX/PNG/TIF: use new `dpmm` resolution field (for EMF following Inkscape) - backend_qt: add `dpmm()`, `vectorWidth()`, `vectorHeight()`, `noPng()`, `getVersion()`, `takesGS1AIData()`, & `XdimDp` stuff incl. new `QZintXdimDp` struct for passing around scale vars & use in `getAsCLI()`; add comments - Raise `scale` limit to 200 (from 100) to allow for large dpmm - output: create directories & subdirectories as necessary for output path using new function `out_fopen()` and use in BMP/EMF/ EPS/GIF/PCX/PNG/SVG/TIF - DPLEIT/DPIDENT: format HRT according to (incomplete) documentation, and set default height to 72X (from 50X) - CODE128B renamed to CODE128AB as can use subsets A and/or B - CODABAR: fix minimum height calc - EMF: fix indexing of handles (zero-based not 1-based) - GUI: fix symbology zap (previous technique of clearing and re-loading settings without doing a sync no longer works); fix UPCEAN guard descent enable - MAILMARK: better error message if input < 14 characters - GUI: add "Default" button for DAFT tracker ratio & enable/disable various default buttons; use new `takesGS1AIData()` to enable/disable GS1-specific checkboxes - CLI: use new `validate_float()` to parse float options (7 significant digits allowed only, no scientific notation) - DATAMATRIX/GRIDMATRIX/PDF417/QR/ULTRA: micro-optimize structapp ID parse - library/CLI: fiddle with static asserts (make CHAR_BIT sensitive, supposedly) - win32/README: update building libpng (assembly removed) - README.linux: document incompatibility of Qt6 >= 6.3 - manual: expand Barcode Studio waffle - test suite: change range separator to hyphen and allow multiple excludes
129 lines
3.4 KiB
Plaintext
129 lines
3.4 KiB
Plaintext
% Tested on Ubuntu 20.04.4 LTS, Ubuntu 22.04 LTS and Fedora Linux 36 (Workstation Edition)
|
|
|
|
1. Prerequisites for building zint
|
|
==================================
|
|
|
|
Prerequisites are git, cmake, make, gcc and gcc-c++, e.g. Ubuntu/Debian
|
|
|
|
sudo apt install git cmake build-essential
|
|
|
|
or Fedora (git, make and gcc should already be installed)
|
|
|
|
sudo dnf install cmake gcc-c++
|
|
|
|
libpng is optional but necessary for PNG support, e.g. Ubuntu/Debian
|
|
|
|
sudo apt install libpng-dev
|
|
|
|
or Fedora
|
|
|
|
sudo dnf install libpng-devel
|
|
|
|
Then either download the source code tarball
|
|
|
|
wget -O zint-2.11.1-src.tar.gz \
|
|
https://sourceforge.net/projects/zint/files/zint/2.11.1/zint-2.11.1-src.tar.gz/download
|
|
tar xf zint-2.11.1-src.tar.gz
|
|
cd zint-2.11.1-src
|
|
|
|
or clone the latest source
|
|
|
|
git clone https://git.code.sf.net/p/zint/code zint
|
|
cd zint
|
|
|
|
|
|
2. Prerequisites for building zint-qt
|
|
=====================================
|
|
|
|
zint-qt can be built with either Qt5 (preferred) or Qt6. First, install mesa (for OpenGL), e.g.
|
|
Ubuntu/Debian
|
|
|
|
sudo apt install mesa-common-dev libglu1-mesa-dev
|
|
|
|
or Fedora
|
|
|
|
sudo dnf install mesa-libGL mesa-libGL-devel
|
|
|
|
2.1. Using Qt packages
|
|
----------------------
|
|
|
|
If packages for Qt exist for your distro, it might be easiest to use them, although knowing
|
|
what their ever-changing names and contents are isn't. A complication is that zint-qt uses 2 Qt
|
|
components beyond the basic setup: Qt UI Tools (for dynamically loading the symbology-specific
|
|
tabs), and Qt SVG (for rendering icons).
|
|
|
|
E.g. on Ubuntu 22.04
|
|
|
|
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev
|
|
|
|
or Ubuntu 20.04
|
|
|
|
sudo apt install qt5-default qt5-uitools
|
|
|
|
or Fedora 36 (not recommended)
|
|
|
|
sudo dnf install qt5-qtbase-devel qt5-qttools-devel qt5-qttools-static qt5-qtsvg-devel
|
|
|
|
You may need to tell CMake where to find the ".cmake" modules:
|
|
|
|
export CMAKE_MODULE_PATH=<cmake-module-path>/Qt5
|
|
|
|
e.g. CMAKE_MODULE_PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt5
|
|
|
|
2.2. Using the Qt Maintenance Tool
|
|
----------------------------------
|
|
|
|
Alternatively, for a more consistent experience, sign up and download the Qt Maintenance Tool
|
|
from
|
|
|
|
https://www.qt.io/download-qt-installer
|
|
|
|
On Ubuntu/Debian you may need to install xinerama to run the tool:
|
|
|
|
sudo apt install libxcb-xinerama0
|
|
|
|
Launch the tool and install the "Desktop gcc 64-bit" component for either Qt 5.15.2 (preferred)
|
|
or Qt 6 (>= 6.1, 6.2.4 preferably, and not >= 6.3 which are incompatible).
|
|
|
|
Once Qt is installed you may need to tell CMake where it is:
|
|
|
|
export CMAKE_PREFIX_PATH=<qt-version-dir>/gcc_64
|
|
|
|
e.g. export CMAKE_PREFIX_PATH=/opt/Qt/5.15.2/gcc_64
|
|
|
|
|
|
3. Build
|
|
========
|
|
|
|
The rest is standard CMake
|
|
|
|
cd zint
|
|
mkdir build
|
|
cd build
|
|
cmake ..
|
|
make
|
|
sudo make install
|
|
|
|
|
|
4. CMake options
|
|
================
|
|
|
|
A number of options are available:
|
|
|
|
ZINT_COVERAGE:BOOL=OFF # Set code coverage flags
|
|
ZINT_DEBUG:BOOL=OFF # Set debug compile flags
|
|
ZINT_NOOPT:BOOL=OFF # Set no optimize compile flags
|
|
ZINT_SANITIZE:BOOL=OFF # Set sanitize compile/link flags
|
|
ZINT_SHARED:BOOL=ON # Build shared library
|
|
ZINT_STATIC:BOOL=OFF # Build static library
|
|
ZINT_TEST:BOOL=OFF # Set test compile flag
|
|
ZINT_USE_PNG:BOOL=ON # Build with PNG support
|
|
ZINT_USE_QT:BOOL=ON # Build with Qt support
|
|
ZINT_QT6:BOOL=OFF # If ZINT_USE_QT, use Qt6
|
|
|
|
which can be set by doing e.g.
|
|
|
|
cmake -DZINT_SANITIZE=ON ..
|
|
|
|
For details on ZINT_TEST and building the zint test suite, see "backend/tests/README".
|