All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.