Re: [Buildroot] [PATCH] package/poco: convert to CMake package

Yegor Yefremov via buildroot <[email protected]>
Newsgroups net.busybox.buildroot
Message-ID <CAGm1_kttXf6DXp5=7B-OTjuS-L8vPJ3uy-AzrDq6177fdM0X3Q@mail.gmail.com>
Hi Arnout, Stefan,

On Wed, Jul 1, 2026 at 3:56 PM <[email protected]> wrote:
>
> From: Yegor Yefremov <[email protected]>
>
> Currently when building with make, the cmake config files are not
> generated. This leads to problems when integrating the package in an
> application built with cmake.
>
> This patch is based on this one:
> https://lists.buildroot.org/pipermail/buildroot/2026-April/801019.html
>
> Signed-off-by: Yegor Yefremov <[email protected]>
> ---
>  package/poco/poco.mk | 88 ++++++++++++++------------------------------
>  1 file changed, 28 insertions(+), 60 deletions(-)
>
> diff --git a/package/poco/poco.mk b/package/poco/poco.mk
> index 40dcc1c502..442e732e26 100644
> --- a/package/poco/poco.mk
> +++ b/package/poco/poco.mk
> @@ -24,78 +24,46 @@ POCO_DEPENDENCIES = \
>         $(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),openssl) \
>         $(if $(BR2_PACKAGE_POCO_XML),expat)
>
> -POCO_OMIT = \
> -       Data/ODBC \
> -       PageCompiler \
> -       $(if $(BR2_PACKAGE_POCO_ACTIVERECORD),,ActiveRecord) \
> -       $(if $(BR2_PACKAGE_POCO_CPP_PARSER),,CppParser) \
> -       $(if $(BR2_PACKAGE_POCO_CRYPTO),,Crypto) \
> -       $(if $(BR2_PACKAGE_POCO_DATA),,Data) \
> -       $(if $(BR2_PACKAGE_POCO_DATA_MYSQL),,Data/MySQL) \
> -       $(if $(BR2_PACKAGE_POCO_DATA_SQLITE),,Data/SQLite) \
> -       $(if $(BR2_PACKAGE_POCO_DATA_PGSQL),,Data/PostgreSQL) \
> -       $(if $(BR2_PACKAGE_POCO_JSON),,JSON) \
> -       $(if $(BR2_PACKAGE_POCO_JWT),,JWT) \
> -       $(if $(BR2_PACKAGE_POCO_MONGODB),,MongoDB) \
> -       $(if $(BR2_PACKAGE_POCO_NET),,Net) \
> -       $(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),,NetSSL_OpenSSL) \
> -       $(if $(BR2_PACKAGE_POCO_PDF),,PDF) \
> -       $(if $(BR2_PACKAGE_POCO_PROMETHEUS),,Prometheus) \
> -       $(if $(BR2_PACKAGE_POCO_REDIS),,Redis) \
> -       $(if $(BR2_PACKAGE_POCO_UTIL),,Util) \
> -       $(if $(BR2_PACKAGE_POCO_XML),,XML) \
> -       $(if $(BR2_PACKAGE_POCO_ZIP),,Zip)
> +
> +POCO_CONF_OPTS = \
> +       -DENABLE_DATA_OBDC=OFF \
> +       -DENABLE_PAGECOMPILER=OFF \
> +       -DENABLE_ACTIVERECORD=$(if $(BR2_PACKAGE_POCO_ACTIVERECORD),ON,OFF) \
> +       -DENABLE_CPPPARSER=$(if $(BR2_PACKAGE_POCO_CPP_PARSER),ON,OFF) \
> +       -DENABLE_CRYPTO=$(if $(BR2_PACKAGE_POCO_CRYPTO),ON,OFF) \
> +       -DENABLE_DATA=$(if $(BR2_PACKAGE_POCO_DATA),ON,OFF) \
> +       -DENABLE_DATA_MYSQL=$(if $(BR2_PACKAGE_POCO_DATA_MYSQL),ON,OFF) \
> +       -DENABLE_DATA_SQLITE=$(if $(BR2_PACKAGE_POCO_DATA_SQLITE),ON,OFF) \
> +       -DENABLE_DATA_POSTGRESQL=$(if $(BR2_PACKAGE_POCO_DATA_PGSQL),ON,OFF) \
> +       -DENABLE_JSON=$(if $(BR2_PACKAGE_POCO_JSON),ON,OFF) \
> +       -DENABLE_JWT=$(if $(BR2_PACKAGE_POCO_JWT),ON,OFF) \
> +       -DENABLE_MONGODB=$(if $(BR2_PACKAGE_POCO_MONGODB),ON,OFF) \
> +       -DENABLE_NET=$(if $(BR2_PACKAGE_POCO_NET),ON,OFF) \
> +       -DENABLE_NETSSL=$(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),ON,OFF) \
> +       -DENABLE_PDF=$(if $(BR2_PACKAGE_POCO_PDF),ON,OFF) \
> +       -DENABLE_PROMETHEUS=$(if $(BR2_PACKAGE_POCO_PROMETHEUS),ON,OFF) \
> +       -DENABLE_REDIS=$(if $(BR2_PACKAGE_POCO_REDIS),ON,OFF) \
> +       -DENABLE_UTIL=$(if $(BR2_PACKAGE_POCO_UTIL),ON,OFF) \
> +       -DENABLE_XML=$(if $(BR2_PACKAGE_POCO_XML),ON,OFF) \
> +       -DENABLE_ZIP=$(if $(BR2_PACKAGE_POCO_ZIP),ON,OFF) \
> +       -DPOCO_UNBUNDLED=ON
>
>  ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
> -POCO_CONF_OPTS += --no-fpenvironment --no-wstring
> +POCO_CONF_OPTS += -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING
>  endif
>
>  # architectures missing some FE_* in their fenv.h
>  ifeq ($(BR2_sh4a),y)
> -POCO_CONF_OPTS += --no-fpenvironment
> +POCO_CONF_OPTS += -DPOCO_NO_FPENVIRONMENT
>  endif
>
>  # disable fpenvironment for soft floating point configuration
>  ifeq ($(BR2_SOFT_FLOAT),y)
> -POCO_CONF_OPTS += --no-fpenvironment
> +POCO_CONF_OPTS += -DPOCO_NO_FPENVIRONMENT
>  endif
>
> -POCO_MAKE_TARGET = shared_release
> -
> -POCO_LDFLAGS=$(TARGET_LDFLAGS)
>  ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> -POCO_LDFLAGS += -latomic
> +POCO_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic
>  endif
>
> -define POCO_CONFIGURE_CMDS
> -       (cd $(@D); $(TARGET_MAKE_ENV) ./configure \
> -               --config=Linux \
> -               --prefix=/usr \
> -               --ldflags="$(POCO_LDFLAGS)" \
> -               --omit="$(POCO_OMIT)" \
> -               $(POCO_CONF_OPTS) \
> -               --unbundled \
> -               --no-tests \
> -               --no-samples)
> -endef
> -
> -define POCO_BUILD_CMDS
> -       $(TARGET_MAKE_ENV) $(MAKE) POCO_TARGET_OSARCH=$(ARCH) CROSS_COMPILE=$(TARGET_CROSS) \
> -               POCO_MYSQL_INCLUDE=$(STAGING_DIR)/usr/include/mysql \
> -               POCO_MYSQL_LIB=$(STAGING_DIR)/usr/lib/mysql \
> -               POCO_PGSQL_INCLUDE=$(STAGING_DIR)/usr/include/postgresql \
> -               POCO_PGSQL_LIB=$(STAGING_DIR)/usr/lib/postgresql \
> -               DEFAULT_TARGET=$(POCO_MAKE_TARGET) -C $(@D)
> -endef
> -
> -define POCO_INSTALL_STAGING_CMDS
> -       $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(STAGING_DIR) POCO_TARGET_OSARCH=$(ARCH) \
> -               DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D)
> -endef
> -
> -define POCO_INSTALL_TARGET_CMDS
> -       $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) POCO_TARGET_OSARCH=$(ARCH) \
> -               DEFAULT_TARGET=$(POCO_MAKE_TARGET) install -C $(@D)
> -endef
> -
> -$(eval $(generic-package))
> +$(eval $(cmake-package))

Gentle ping, I just wanted to get this patch through before I start
working on bumping the package.

Thanks.

Regards,
Yegor
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.