android: mm: Stub libhardware for build tests

Commit 66c618f378aa ("android: mm: generic: use
GRALLOC_HARDWARE_MODULE_ID") made libhardware a required dependency for
the Android camera HAL on non-Chrome OS platforms. This isn't an issue
for real devices, as Android provides libhardware, but it prevents
compile-testing the camera HAL on traditional Linux systems.

To restore the compile-test coverage, stub the libhardware function used
by the camera HAL when libhardware isn't found.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # meson build test
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2023-05-30 17:38:43 +03:00
parent 1450e09a08
commit b9ecd85ed1
2 changed files with 25 additions and 4 deletions

View file

@ -0,0 +1,17 @@
/* SPDX-License-Identifier: Apache-2.0 */
/*
* Copyright (C) 2023, Ideas on Board
*
* libhardware_stub.c - Android libhardware stub for test compilation
*/
#include <errno.h>
#include <hardware/hardware.h>
int hw_get_module(const char *id __attribute__((__unused__)),
const struct hw_module_t **module)
{
*module = NULL;
return -ENOTSUP;
}

View file

@ -4,10 +4,14 @@ platform = get_option('android_platform')
if platform == 'generic'
android_hal_sources += files(['generic_camera_buffer.cpp',
'generic_frame_buffer_allocator.cpp'])
android_deps += [
libdl,
dependency('libhardware'),
]
android_deps += [libdl]
libhardware = dependency('libhardware', required : false)
if libhardware.found()
android_deps += [libhardware]
else
android_hal_sources += files(['libhardware_stub.c'])
endif
elif platform == 'cros'
android_hal_sources += files(['cros_camera_buffer.cpp',
'cros_frame_buffer_allocator.cpp'])