Skip to content

Commit

Permalink
build: make building protobuf optional in depends
Browse files Browse the repository at this point in the history
Summary:
Backport of core [[bitcoin/bitcoin#16871 | PR16871]].

The logic is reversed wrt core since we enable bip70 by default.

Depends on D5637.

Test Plan:
  make build-osx NO_PROTOBUF=1
Check that protobuf is not built.
  ../configure --prefix=$PWD/../depends/x86_64-apple-darwin16
Check in the summary that bip70 is disabled:
  with bip70  = no

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

Differential Revision: https://reviews.bitcoinabc.org/D5640
  • Loading branch information
fanquake authored and Fabcien committed Apr 2, 2020
1 parent 5a7ef9c commit f1bf355
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 5 deletions.
8 changes: 6 additions & 2 deletions depends/Makefile
Expand Up @@ -5,6 +5,7 @@ WORK_PATH = $(BASEDIR)/work
BASE_CACHE ?= $(BASEDIR)/built
SDK_PATH ?= $(BASEDIR)/SDKs
NO_QT ?=
NO_PROTOBUF ?=
RAPIDCHECK ?=
NO_WALLET ?=
NO_ZMQ ?=
Expand Down Expand Up @@ -98,13 +99,15 @@ wallet_packages_$(NO_WALLET) = $(wallet_packages)
upnp_packages_$(NO_UPNP) = $(upnp_packages)
zmq_packages_$(NO_ZMQ) = $(zmq_packages)

protobuf_packages_$(NO_PROTOBUF) = $(protobuf_packages)
rapidcheck_packages_$(RAPIDCHECK) = $(rapidcheck_packages)

packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(qt_packages_) $(wallet_packages_) $(upnp_packages_)
native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages)

ifneq ($(qt_packages_),)
native_packages += $(qt_native_packages)
ifneq ($(protobuf_packages_),)
native_packages += $(protobuf_native_packages)
packages += $(protobuf_packages)
endif

ifneq ($(zmq_packages_),)
Expand Down Expand Up @@ -151,6 +154,7 @@ $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_
-e 's|@LDFLAGS@|$(strip $(host_LDFLAGS) $(host_$(release_type)_LDFLAGS))|' \
-e 's|@no_qt@|$(NO_QT)|' \
-e 's|@no_zmq@|$(NO_ZMQ)|' \
-e 's|@no_bip70@|$(NO_PROTOBUF)|' \
-e 's|@no_wallet@|$(NO_WALLET)|' \
-e 's|@no_upnp@|$(NO_UPNP)|' \
-e 's|@debug@|$(DEBUG)|' \
Expand Down
1 change: 1 addition & 0 deletions depends/README.md
Expand Up @@ -90,6 +90,7 @@ The following can be set when running make: make FOO=bar
NO_UPNP: Don't download/build/cache packages needed for enabling upnp
DEBUG: disable some optimizations and enable more runtime checking
RAPIDCHECK: build rapidcheck (experimental, requires cmake)
NO_PROTOBUF: Don't download/build/cache protobuf (used for BIP70 support)
HOST_ID_SALT: Optional salt to use when generating host package ids
BUILD_ID_SALT: Optional salt to use when generating build package ids
JOBS: Number of jobs to use for each package build
Expand Down
4 changes: 4 additions & 0 deletions depends/config.site.in
Expand Up @@ -37,6 +37,10 @@ if test -z $enable_zmq && test -n "@no_zmq@"; then
enable_zmq=no
fi

if test -z $enable_bip70 && test -n "@no_bip70@"; then
enable_bip70=no
fi

if test x@host_os@ = xdarwin; then
BREW=no
PORT=no
Expand Down
6 changes: 4 additions & 2 deletions depends/packages/packages.mk
@@ -1,7 +1,9 @@
packages:=boost openssl libevent

qt_native_packages = native_protobuf
qt_packages = qrencode protobuf zlib
protobuf_native_packages = native_protobuf
protobuf_packages = protobuf

qt_packages = qrencode zlib

qt_linux_packages:=qt expat libxcb xcb_proto libXau xproto freetype fontconfig

Expand Down
2 changes: 1 addition & 1 deletion doc/build-unix.md
Expand Up @@ -39,7 +39,7 @@ Optional dependencies:
miniupnpc | UPnP Support | Firewall-jumping support
libdb | Berkeley DB | Wallet storage (only needed when wallet enabled)
qt | GUI | GUI toolkit (only needed when GUI enabled)
protobuf | Payments in GUI | Data interchange format used for payment protocol (only needed when GUI enabled)
protobuf | Payments in GUI | Data interchange format used for payment protocol (only needed when BIP70 enabled)
libqrencode | QR codes in GUI | Optional for generating QR codes (only needed when GUI enabled)
univalue | Utility | JSON parsing and encoding (bundled version will be used unless --with-system-univalue passed to configure)
libzmq3 | ZMQ notification | Optional, allows generating ZMQ notifications (requires ZMQ version >= 4.1.5)
Expand Down

0 comments on commit f1bf355

Please sign in to comment.