[libcamera-devel] [PATCH] apps: cam: Fix compilation error with clang when libtiff-4 is not found
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Oct 24 13:43:19 CEST 2022
Quoting Laurent Pinchart via libcamera-devel (2022-10-24 11:46:38)
> When libtiff-4 is not found, the private camera_ member of the FileSink
> class is set but never used. This causes a compilation error with clang:
>
> In file included from ../../src/apps/cam/file_sink.cpp:19:
> ../../src/apps/cam/file_sink.h:39:27: error: private field 'camera_' is not used [-Werror,-Wunused-private-field]
> const libcamera::Camera *camera_;
>
> Fix by making the camera_ member field conditional on HAVE_TIFF.
Ugh, this feels like an ugly fix. I hate it when compiler warnings
(which I want to keep enabled) work against us like this.
Any other proposal is probably just a different ugly workaround on an
unused arg so lets fix the build and ...
Acked-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
> Fixes: 6404b163bcbb ("cam: file_sink: Add support for DNG output")
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> src/apps/cam/file_sink.cpp | 8 ++++++--
> src/apps/cam/file_sink.h | 2 ++
> 2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/src/apps/cam/file_sink.cpp b/src/apps/cam/file_sink.cpp
> index 9d60c04e1cf4..4dfacc103c54 100644
> --- a/src/apps/cam/file_sink.cpp
> +++ b/src/apps/cam/file_sink.cpp
> @@ -21,10 +21,14 @@
>
> using namespace libcamera;
>
> -FileSink::FileSink(const libcamera::Camera *camera,
> +FileSink::FileSink([[maybe_unused]] const libcamera::Camera *camera,
> const std::map<const libcamera::Stream *, std::string> &streamNames,
> const std::string &pattern)
> - : camera_(camera), streamNames_(streamNames), pattern_(pattern)
> + :
> +#ifdef HAVE_TIFF
> + camera_(camera),
> +#endif
> + streamNames_(streamNames), pattern_(pattern)
> {
> }
>
> diff --git a/src/apps/cam/file_sink.h b/src/apps/cam/file_sink.h
> index 9ce8b619f69d..300edf8dc902 100644
> --- a/src/apps/cam/file_sink.h
> +++ b/src/apps/cam/file_sink.h
> @@ -36,7 +36,9 @@ private:
> libcamera::FrameBuffer *buffer,
> const libcamera::ControlList &metadata);
>
> +#ifdef HAVE_TIFF
> const libcamera::Camera *camera_;
> +#endif
> std::map<const libcamera::Stream *, std::string> streamNames_;
> std::string pattern_;
> std::map<libcamera::FrameBuffer *, std::unique_ptr<Image>> mappedBuffers_;
>
> base-commit: 24f8ef763a60f410963fd8897a16ae077aaeff0d
> --
> Regards,
>
> Laurent Pinchart
>
More information about the libcamera-devel
mailing list