[Buildroot] [PATCH 17/29 v2] package/boost: commonalise list of libs

Yann E. MORIN yann.morin.1998 at free.fr
Wed Apr 9 20:03:32 UTC 2025


The list of available libraries is duplicated for the host and target
variants, which is prone to getting desynchronised next time we bump and
the list changes (with additions or removals).

This incidentally greatly cleanups the target variant variable, which
used the superfluous, verbose repetition of append-assignments rather
than a multi-line single assignment.

For the host variant, if we do not have an option for a library, the
library will default to being disabled, which is exactly what we want.

Note: This diff best viewed with: --anchored='BOOST_TARGET_CXXFLAGS ='

Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
Cc: Michael Nosthoff <buildroot at heine.tech>
Cc: Yegor Yefremov <yegorslists at googlemail.com>
---
 package/boost/Config.in      |   6 ++
 package/boost/Config.in.host |   2 +
 package/boost/boost.mk       | 103 +++++++++++++----------------------
 3 files changed, 47 insertions(+), 64 deletions(-)

diff --git a/package/boost/Config.in b/package/boost/Config.in
index c7c90aa9ab..f37efd129b 100644
--- a/package/boost/Config.in
+++ b/package/boost/Config.in
@@ -98,6 +98,7 @@ config BR2_PACKAGE_BOOST_DATE_TIME
 	  A set of date-time libraries based on generic programming
 	  concepts.
 
+# check-symbol ignore
 config BR2_PACKAGE_BOOST_EXCEPTION
 	bool "boost-exception"
 	help
@@ -146,6 +147,7 @@ config BR2_PACKAGE_BOOST_GRAPH
 	  The BGL graph interface and graph components are generic, in
 	  the same sense as the the Standard Template Library (STL).
 
+# check-symbol ignore
 config BR2_PACKAGE_BOOST_GRAPH_PARALLEL
 	bool "boost-graph_parallel"
 	help
@@ -249,12 +251,14 @@ config BR2_PACKAGE_BOOST_MATH
 comment "boost-math needs a toolchain w/ C++14, gcc>=5.0"
 	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5
 
+# check-symbol ignore
 config BR2_PACKAGE_BOOST_MPI
 	bool "boost-mpi"
 	help
 	  Message Passing Interface library, for use in
 	  distributed-memory parallel application programming.
 
+# check-symbol ignore
 config BR2_PACKAGE_BOOST_NOWIDE
 	bool "boost-nowide"
 	help
@@ -294,6 +298,7 @@ config BR2_PACKAGE_BOOST_SERIALIZATION
 	help
 	  Serialization for persistence and marshalling.
 
+# check-symbol ignore
 config BR2_PACKAGE_BOOST_STACKTRACE
 	bool "boost-stacktrace"
 	depends on !BR2_STATIC_LIBS
@@ -349,6 +354,7 @@ config BR2_PACKAGE_BOOST_TYPE_ERASURE
 comment "boost-type_erasure needs a toolchain not affected by GCC bug 64735"
 	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
 
+# check-symbol ignore
 config BR2_PACKAGE_BOOST_URL
 	bool "boost-url"
 	help
diff --git a/package/boost/Config.in.host b/package/boost/Config.in.host
index d377a8fbd8..bf69287383 100644
--- a/package/boost/Config.in.host
+++ b/package/boost/Config.in.host
@@ -1,6 +1,8 @@
 config BR2_PACKAGE_HOST_BOOST
 	bool
 
+# keep host variant as minimal as possible, only add options when
+# an actual host package needs it.
 if BR2_PACKAGE_HOST_BOOST
 
 config BR2_PACKAGE_HOST_BOOST_REGEX
diff --git a/package/boost/boost.mk b/package/boost/boost.mk
index 95191476a8..2b952baaac 100644
--- a/package/boost/boost.mk
+++ b/package/boost/boost.mk
@@ -12,36 +12,7 @@ BOOST_LICENSE = BSL-1.0
 BOOST_LICENSE_FILES = LICENSE_1_0.txt
 BOOST_CPE_ID_VENDOR = boost
 
-BOOST_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS)
-
-BOOST_FLAGS = --with-toolset=gcc
-
-ifeq ($(BR2_PACKAGE_ICU),y)
-BOOST_FLAGS += --with-icu=$(STAGING_DIR)/usr
-BOOST_DEPENDENCIES += icu
-else
-BOOST_FLAGS += --without-icu
-endif
-
-ifeq ($(BR2_PACKAGE_BOOST_IOSTREAMS),y)
-BOOST_DEPENDENCIES += bzip2 zlib
-endif
-
-ifeq ($(BR2_PACKAGE_BOOST_PYTHON),y)
-BOOST_FLAGS += \
-	--with-python-root=$(HOST_DIR) \
-	--with-python=$(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR)
-BOOST_TARGET_CXXFLAGS += -I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR)
-BOOST_DEPENDENCIES += python3
-endif
-
-HOST_BOOST_FLAGS = \
-	--without-icu \
-	--with-toolset=gcc
-
-# keep host variant as minimal as possible, only add options when
-# an actual host package needs it.
-HOST_BOOST_WITHOUT_FLAGS = \
+BOOST_ALL_LIBS = \
 	atomic \
 	chrono \
 	container \
@@ -64,10 +35,10 @@ HOST_BOOST_WITHOUT_FLAGS = \
 	program_options \
 	python \
 	random \
-	$(if $(BR2_PACKAGE_HOST_BOOST_REGEX),,regex) \
+	regex \
 	serialization \
 	stacktrace \
-	$(if $(BR2_PACKAGE_HOST_BOOST_SYSTEM),,system) \
+	system \
 	test \
 	thread \
 	timer \
@@ -75,6 +46,38 @@ HOST_BOOST_WITHOUT_FLAGS = \
 	url \
 	wave
 
+BOOST_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS)
+
+BOOST_FLAGS = --with-toolset=gcc
+
+ifeq ($(BR2_PACKAGE_ICU),y)
+BOOST_FLAGS += --with-icu=$(STAGING_DIR)/usr
+BOOST_DEPENDENCIES += icu
+else
+BOOST_FLAGS += --without-icu
+endif
+
+ifeq ($(BR2_PACKAGE_BOOST_IOSTREAMS),y)
+BOOST_DEPENDENCIES += bzip2 zlib
+endif
+
+ifeq ($(BR2_PACKAGE_BOOST_PYTHON),y)
+BOOST_FLAGS += \
+	--with-python-root=$(HOST_DIR) \
+	--with-python=$(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR)
+BOOST_TARGET_CXXFLAGS += -I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR)
+BOOST_DEPENDENCIES += python3
+endif
+
+HOST_BOOST_FLAGS = \
+	--without-icu \
+	--with-toolset=gcc
+
+HOST_BOOST_WITHOUT_FLAGS = \
+	$(foreach lib, $(BOOST_ALL_LIBS), \
+		$(if $(BR2_PACKAGE_HOST_BOOST_$(call UPPERCASE,$(lib))),,$(lib)) \
+	)
+
 HOST_BOOST_WITHOUT_FLAGS_COMMASEPARATED = $(subst $(space),$(comma),$(strip $(HOST_BOOST_WITHOUT_FLAGS)))
 HOST_BOOST_FLAGS += $(if $(HOST_BOOST_WITHOUT_FLAGS_COMMASEPARATED), --without-libraries=$(HOST_BOOST_WITHOUT_FLAGS_COMMASEPARATED))
 
@@ -126,38 +129,10 @@ endif
 BOOST_DEPENDENCIES += $(if $(BR2_ENABLE_LOCALE),,libiconv)
 endif
 
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_ATOMIC),,atomic)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CHRONO),,chrono)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTAINER),,container)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTEXT),,context)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTRACT),,contract)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_COROUTINE),,coroutine)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_DATE_TIME),,date_time)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_EXCEPTION),,exception)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_FIBER),,fiber)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_FILESYSTEM),,filesystem)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_GRAPH),,graph)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_GRAPH_PARALLEL),,graph_parallel)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_IOSTREAMS),,iostreams)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_JSON),,json)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_LOCALE),,locale)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_LOG),,log)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_MATH),,math)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_MPI),,mpi)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_NOWIDE),,nowide)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_PROGRAM_OPTIONS),,program_options)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_PYTHON),,python)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_RANDOM),,random)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_REGEX),,regex)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_SERIALIZATION),,serialization)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_STACKTRACE),,stacktrace)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_SYSTEM),,system)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TEST),,test)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_THREAD),,thread)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TIMER),,timer)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_TYPE_ERASURE),,type_erasure)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_URL),,url)
-BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_WAVE),,wave)
+BOOST_WITHOUT_FLAGS = \
+	$(foreach lib, $(BOOST_ALL_LIBS), \
+		$(if $(BR2_PACKAGE_BOOST_$(call UPPERCASE,$(lib))),,$(lib)) \
+	)
 
 BOOST_WITHOUT_FLAGS_COMMASEPARATED += $(subst $(space),$(comma),$(strip $(BOOST_WITHOUT_FLAGS)))
 BOOST_FLAGS += $(if $(BOOST_WITHOUT_FLAGS_COMMASEPARATED), --without-libraries=$(BOOST_WITHOUT_FLAGS_COMMASEPARATED))
-- 
2.47.0



More information about the buildroot mailing list