[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