mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
c1666cf350
avoid various weird behaviours tests: disable GUI-dependent tests (`TestQZint::renderTest()`) if ZINT_SANITIZE and on Linux for later versions of Qt (5 and 6) to avoid ASAN "detected memory leaks" errors on exit
136 lines
3.7 KiB
Plaintext
136 lines
3.7 KiB
Plaintext
% README.linux 2024-10-04
|
|
% Tested on Ubuntu 20.04.4 LTS, Ubuntu 22.04 LTS, Ubuntu 24.04 LTS and
|
|
% Fedora Linux 40 (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.13.0-src.tar.gz \
|
|
https://sourceforge.net/projects/zint/files/zint/2.13.0/zint-2.13.0-src.tar.gz/download
|
|
tar xf zint-2.13.0-src.tar.gz
|
|
cd zint-2.13.0-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
|
|
|
|
zint-qt has issues running on Wayland so sets X11 as the Qt platform (via the environment variable
|
|
"QT_QPA_PLATFORM=xcb") on startup unless already set.
|
|
|
|
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 or 24.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 (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).
|
|
|
|
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_FRONTEND:BOOL=ON # Build frontend
|
|
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_UNINSTALL:BOOL=ON # Add uninstall target
|
|
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".
|