bitcoin/doc/dependencies.md
fanquake 05757aa860
Merge #21423: build: Cleanups and follow ups after bumping Qt to 5.12.10
e67c0122a4 doc: Update dependencies.md with a new Qt version (Hennadii Stepanov)
cc25f892d2 build: Cleanup libxkbcommon_postprocess_cmds (Hennadii Stepanov)
72fc043954 build, qt: Drop redundant -lxcb-static flag (Hennadii Stepanov)
cba4a7e416 build, qt: Always test plugins/subdir before adding to search paths (Hennadii Stepanov)

Pull request description:

  1) Always test `plugins/subdir` before adding to search paths as the existence of each subdir is not guaranteed for all platforms:
    - https://github.com/bitcoin/bitcoin/pull/21376#discussion_r591613489

  2) Drop redundant `-lxcb-static` flag as it has been already linked with `Qt5XcbQpa`:
    - https://github.com/bitcoin/bitcoin/pull/21363#discussion_r588881613

  3) Cleanup `libxkbcommon_postprocess_cmds` as there is no `share/` directory in the staging one:
    - https://github.com/bitcoin/bitcoin/pull/21376#discussion_r588867355
    - https://github.com/bitcoin/bitcoin/pull/21376#issuecomment-794010534

  4) Update `dependencies.md`

ACKs for top commit:
  fanquake:
    ACK e67c0122a4

Tree-SHA512: 9113ee97d5e7424290778154d62a68af804ee82efedbbe9776a7f692104d65b07d151e9f7f1f98ec08d18f6d63efef3e44b207bee67ad913f5dbc4eddbb8ea41
2021-03-19 16:58:13 +08:00

3.5 KiB

Dependencies

These are the dependencies currently used by Bitcoin Core. You can find instructions for installing them in the build-*.md file for your platform.

Dependency Version used Minimum required CVEs Shared Bundled Qt library
Berkeley DB 4.8.30 4.8.x No
Boost 1.71.0 1.58.0 No
Clang 5.0+ (C++17 support)
Expat 2.2.7 No Yes
fontconfig 2.12.1 No Yes
FreeType 2.7.1 No Yes (Android only)
GCC 7+ (C++17 support)
HarfBuzz-NG Yes
libevent 2.1.11-stable 2.0.21 No
libnatpmp git commit 4536032... No
libpng Yes
librsvg
MiniUPnPc 2.0.20180203 No
PCRE Yes
Python (tests) 3.6
qrencode 3.4.4 No
Qt 5.12.10 5.9.5 No
SQLite 3.32.1 3.7.17
XCB Yes (Linux only)
xkbcommon Yes (Linux only)
ZeroMQ 4.3.1 4.0.0 No
zlib Yes

Controlling dependencies

Some dependencies are not needed in all configurations. The following are some factors that affect the dependency list.

Options passed to ./configure

  • MiniUPnPc is not needed with --without-miniupnpc.
  • libnatpmp is not needed with --without-natpmp.
  • Berkeley DB is not needed with --disable-wallet or --without-bdb.
  • SQLite is not needed with --disable-wallet or --without-sqlite.
  • Qt is not needed with --without-gui.
  • If the qrencode dependency is absent, QR support won't be added. To force an error when that happens, pass --with-qrencode.
  • ZeroMQ is needed only with the --with-zmq option.

Other

  • librsvg is only needed if you need to run make deploy on (cross-compilation to) macOS.
  • Not-Qt-bundled zlib is required to build the DMG tool from the libdmg-hfsplus project.