diff mbox series

[3/3] packages/libcamera-apps: Fix build to use meson

Message ID 20231227182429.1215185-3-mail@sebastianbauer.info
State New
Headers show
Series [1/3] Revert "package/libcamera-apps: bump to version 1.3.0" | expand

Commit Message

Sebastian Bauer Dec. 27, 2023, 6:24 p.m. UTC
Upstream uses meson instead of cmake since a while.

Signed-off-by: Sebastian Bauer <mail@sebastianbauer.info>
---
 package/libcamera-apps/libcamera-apps.mk | 27 ++++++++++--------------
 1 file changed, 11 insertions(+), 16 deletions(-)

Comments

Sebastian Bauer Jan. 8, 2024, 10:42 p.m. UTC | #1
Hi all,

Am 2023-12-27 19:24, schrieb Sebastian Bauer:
> Upstream uses meson instead of cmake since a while.

Is there any opion about this patch? Any hints are much appreciated.

Best
Sebastian
Thomas Petazzoni Feb. 12, 2024, 10:07 p.m. UTC | #2
Hello Sebastian,

On Wed, 27 Dec 2023 19:24:29 +0100
Sebastian Bauer <mail@sebastianbauer.info> wrote:

> Upstream uses meson instead of cmake since a while.
> 
> Signed-off-by: Sebastian Bauer <mail@sebastianbauer.info>

Thanks for your patch, and sorry for the slow feedback. Could you
clarify why this you say "Fix build" in your commit title? Is there
some build failure, or is this an improvement patch?

> -ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> -LIBCAMERA_APPS_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic
> -endif

You're removing this chunk, but it was important. Do you have some
evidence that it is no longer needed?

It was added in f41d47f15b63a4bbe026834478e63acba85d33fe, as otherwise
libcamera-apps would fail to build on the SPARC CPU architecture. See
the commit log for a reference to an autobuilder failure.

Thanks in advance for your feedback!

Thomas
Sebastian Bauer Feb. 13, 2024, 6:30 p.m. UTC | #3
Hello Thomas,

Am 2024-02-12 23:07, schrieb Thomas Petazzoni:
> On Wed, 27 Dec 2023 19:24:29 +0100
> Sebastian Bauer <mail@sebastianbauer.info> wrote:
> 
>> Upstream uses meson instead of cmake since a while.
>> 
>> Signed-off-by: Sebastian Bauer <mail@sebastianbauer.info>
> Thanks for your patch, and sorry for the slow feedback. Could you
> clarify why this you say "Fix build" in your commit title? Is there
> some build failure, or is this an improvement patch?

There has been a build failure, because the libcamera-apps version 
pinned at that time did not come with a CMakeLists.txt file (anymore). 
The build is not broken currently because libcamera-apps was reverted to 
1.2.1 by one previous patch. The subject is probably not correct 
anymore. But if libcamera-apps is bumped again, a switch to meson is 
mandatory.

I have tried to bump libcamera and libcamera-apps to newer versions in 
the meantime but I haven't found a combination that works yet on the Pi 
(it builds but the resulting binarys do not work as they used to work).

>> -ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
>> -LIBCAMERA_APPS_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic
>> -endif
> You're removing this chunk, but it was important. Do you have some
> evidence that it is no longer needed?

I cannot say it for sure, but given the fact that the build was broken 
for all platforms before this patch series I did not bother to 
investigate it. However, I saw the presence of the flag in the build for 
the Raspberry Pi, which may indicate that this chunk is not necessary, 
but I'm not on SPARC to test it. I also have no idea how to inject this 
flag manually using meson. But I believe that, if the problem is still 
existent, a proper fix would be at a different place, as the propagation 
of the flag works on other platforms.

Note that in the meantime also the project libcamera-apps was renamed to 
rpicam-apps suggesting that SPARC is not the original target of that 
toolset.

Bye
Sebastian
diff mbox series

Patch

diff --git a/package/libcamera-apps/libcamera-apps.mk b/package/libcamera-apps/libcamera-apps.mk
index 2a217f095f..b76d2b2a1b 100644
--- a/package/libcamera-apps/libcamera-apps.mk
+++ b/package/libcamera-apps/libcamera-apps.mk
@@ -18,42 +18,37 @@  LIBCAMERA_APPS_DEPENDENCIES = \
 	tiff
 
 LIBCAMERA_APPS_CONF_OPTS = \
-	-DENABLE_COMPILE_FLAGS_FOR_TARGET=disabled \
-	-DENABLE_OPENCV=0 \
-	-DENABLE_TFLITE=0
+	-Denable_opencv=false \
+	-Denable_tflite=false
 
 ifeq ($(BR2_PACKAGE_LIBDRM),y)
 LIBCAMERA_APPS_DEPENDENCIES += libdrm
-LIBCAMERA_APPS_CONF_OPTS += -DENABLE_DRM=1
+LIBCAMERA_APPS_CONF_OPTS += -Denable_drm=true
 else
-LIBCAMERA_APPS_CONF_OPTS += -DENABLE_DRM=0
+LIBCAMERA_APPS_CONF_OPTS += -Denable_drm=false
 endif
 
 ifeq ($(BR2_PACKAGE_FFMPEG)$(BR2_PACKAGE_LIBDRM),yy)
 LIBCAMERA_APPS_DEPENDENCIES += ffmpeg libdrm
-LIBCAMERA_APPS_CONF_OPTS += -DENABLE_LIBAV=1
+LIBCAMERA_APPS_CONF_OPTS += -Denable_libav=true
 else
-LIBCAMERA_APPS_CONF_OPTS += -DENABLE_LIBAV=0
+LIBCAMERA_APPS_CONF_OPTS += -Denable_libav=false
 endif
 
 ifeq ($(BR2_PACKAGE_XORG7),y)
 LIBCAMERA_APPS_DEPENDENCIES += \
 	$(if $(BR2_PACKAGE_LIBEPOXY),libepoxy) \
 	$(if $(BR2_PACKAGE_XLIB_LIBX11),xlib_libX11)
-LIBCAMERA_APPS_CONF_OPTS += -DENABLE_X11=1
+LIBCAMERA_APPS_CONF_OPTS += -Denable_egl=true
 else
-LIBCAMERA_APPS_CONF_OPTS += -DENABLE_X11=0
+LIBCAMERA_APPS_CONF_OPTS += -Denable_egl=false
 endif
 
 ifeq ($(BR2_PACKAGE_QT5),y)
 LIBCAMERA_APPS_DEPENDENCIES += qt5base
-LIBCAMERA_APPS_CONF_OPTS += -DENABLE_QT=1
+LIBCAMERA_APPS_CONF_OPTS += -Denable_qt=true
 else
-LIBCAMERA_APPS_CONF_OPTS += -DENABLE_QT=0
+LIBCAMERA_APPS_CONF_OPTS += -Denable_qt=false
 endif
 
-ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
-LIBCAMERA_APPS_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic
-endif
-
-$(eval $(cmake-package))
+$(eval $(meson-package))