cmakeboostbuildroot

Could NOT find Boost (missing: program_options) on Buildroot


I'm trying to add a new package to my buildroot. It is cmake based but I'm using generic_package module to add it. It has couple of dependencies such as boost, that I'm actually adding them.

SRSRAN_VERSION = release_23_11
SRSRAN_SITE = https://github.com/srsran/srsRAN_4G.git
SRSRAN_SITE_METHOD = git
SRSRAN_LICENSE = AGPL-3.0
SRSRAN_LICENSE_FILES = LICENSE
SRSRAN_DEPENDENCIES = boost fftw-single mbedtls lksctp-tools host-cmake

ifeq ($(BR2_PACKAGE_ZEROMQ),y)
SRSRAN_DEPENDENCIES += zeromq
SRSRAN_DEPENDENCIES += czmq
endif

define SRSRAN_CONFIGURE_CMDS
    (mkdir -p $(@D)/build && \
    cd $(@D)/build && \
    $(TARGET_CONFIGURE_OPTS) \
    $(TARGET_CONFIGURE_ARGS) \
    cmake ../ \
    $(SRSRAN_CONF_OPTS) \
    )
endef


$(eval $(generic-package))

However, I'm getting following error:

-- Could NOT find Boost (missing: program_options) (found suitable version "1.80.0", minimum required is "1.35")
CMake Error at CMakeLists.txt:296 (message):
  Boost required to build srsRAN


Solution

  • The boost package consist of a great number of small libraries. Buildroot allows you to select each of them individually.

    It seems that your package needs the program-options library. You need to enable the BR2_PACKAGE_BOOST_PROGRAM_OPTIONS config option to get this library.

    The best way to do that is to add the following to the Config.in of your new package:

              select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
    

    Note that if you change your configuration and already have a partial build, this will not be updated automatically. You'll have to run make boost-reconfigure explicitly to make sure the new option is taken into account.