forked from zint/zint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.linux
135 lines (84 loc) · 3.67 KB
/
README.linux
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
% 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".