* [Buildroot] [PATCH] package/poco: convert to CMake package
@ 2026-07-01 13:56 yegorslists--- via buildroot
2026-08-24 12:57 ` Yegor Yefremov via buildroot
2026-09-10 19:27 ` Thomas Petazzoni via buildroot
0 siblings, 2 replies; 3+ messages in thread
From: yegorslists--- via buildroot @ 2026-07-01 13:56 UTC (permalink / raw)
To: buildroot; +Cc: stefan_preiss, arnout
From: Yegor Yefremov <yegorslists@googlemail.com>
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 <yegorslists@googlemail.com>
---
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))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH] package/poco: convert to CMake package
2026-07-01 13:56 [Buildroot] [PATCH] package/poco: convert to CMake package yegorslists--- via buildroot
@ 2026-08-24 12:57 ` Yegor Yefremov via buildroot
2026-09-10 19:27 ` Thomas Petazzoni via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Yegor Yefremov via buildroot @ 2026-08-24 12:57 UTC (permalink / raw)
To: buildroot; +Cc: stefan_preiss
Hi Arnout, Stefan,
On Wed, Jul 1, 2026 at 3:56 PM <yegorslists@googlemail.com> wrote:
>
> From: Yegor Yefremov <yegorslists@googlemail.com>
>
> 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 <yegorslists@googlemail.com>
> ---
> 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
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH] package/poco: convert to CMake package
2026-07-01 13:56 [Buildroot] [PATCH] package/poco: convert to CMake package yegorslists--- via buildroot
2026-08-24 12:57 ` Yegor Yefremov via buildroot
@ 2026-09-10 19:27 ` Thomas Petazzoni via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-09-10 19:27 UTC (permalink / raw)
To: yegorslists; +Cc: buildroot, stefan_preiss, arnout
Hello Yegor,
On Wed, Jul 01, 2026 at 03:56:40PM +0200, yegorslists--- via buildroot wrote:
> From: Yegor Yefremov <yegorslists@googlemail.com>
>
> 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 <yegorslists@googlemail.com>
Sorry for the delay in getting back to you. Unfortunately, this patch
breaks the build.
I've tested this configuration:
BR2_aarch64=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_POCO=y
BR2_PACKAGE_POCO_ACTIVERECORD=y
BR2_PACKAGE_POCO_CPP_PARSER=y
BR2_PACKAGE_POCO_DATA_MYSQL=y
BR2_PACKAGE_POCO_DATA_PGSQL=y
BR2_PACKAGE_POCO_DATA_SQLITE=y
BR2_PACKAGE_POCO_JWT=y
BR2_PACKAGE_POCO_MONGODB=y
BR2_PACKAGE_POCO_NETSSL_OPENSSL=y
BR2_PACKAGE_POCO_PDF=y
BR2_PACKAGE_POCO_PROMETHEUS=y
BR2_PACKAGE_POCO_REDIS=y
BR2_PACKAGE_POCO_ZIP=y
# BR2_TARGET_ROOTFS_TAR is not set
which basically has all Poco sub-options enabled. And it fails with:
CMake Error at /home/thomas/projets/buildroot/output/host/share/cmake-4.4/Modules/FindPackageHandleStandardArgs.cmake:290 (message):
Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
Call Stack (most recent call first):
/home/thomas/projets/buildroot/output/host/share/cmake-4.4/Modules/FindPackageHandleStandardArgs.cmake:654 (_FPHSA_FAILURE_MESSAGE)
/home/thomas/projets/buildroot/output/host/share/cmake-4.4/Modules/FindPNG.cmake:218 (find_package_handle_standard_args)
PDF/CMakeLists.txt:93 (find_package)
So it seems like it now needs libpng? Not sure under what conditions.
Same build, but without your patch: the build completes successfully.
Could you have a look and submit a v2?
Thanks!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-10 19:27 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-01 13:56 [Buildroot] [PATCH] package/poco: convert to CMake package yegorslists--- via buildroot
2026-08-24 12:57 ` Yegor Yefremov via buildroot
2026-09-10 19:27 ` Thomas Petazzoni via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).