libcamera: Auto-generate libcamera.h
As shown by two missing includes, keeping the libcamera.h file in sync when adding or removing headers is an error-prone manual process. Automate it by generating the header automatically. The libcamera.h header is also added to the libcamera dependency libcamera_dep to ensure that the headers gets generated before any source depending on it gets compiled. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
3fac104158
commit
90de3690c4
4 changed files with 37 additions and 22 deletions
27
include/libcamera/gen-header.sh
Executable file
27
include/libcamera/gen-header.sh
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/bin/sh
|
||||
|
||||
src_dir="$1"
|
||||
dst_file="$2"
|
||||
|
||||
cat <<EOF > "$dst_file"
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
/* This file is auto-generated, do not edit! */
|
||||
/*
|
||||
* Copyright (C) 2018-2019, Google Inc.
|
||||
*
|
||||
* libcamera.h - libcamera public API
|
||||
*/
|
||||
#ifndef __LIBCAMERA_LIBCAMERA_H__
|
||||
#define __LIBCAMERA_LIBCAMERA_H__
|
||||
|
||||
EOF
|
||||
|
||||
for header in "$src_dir"/*.h ; do
|
||||
header=$(basename "$header")
|
||||
echo "#include <libcamera/$header>" >> "$dst_file"
|
||||
done
|
||||
|
||||
cat <<EOF >> "$dst_file"
|
||||
|
||||
#endif /* __LIBCAMERA_LIBCAMERA_H__ */
|
||||
EOF
|
|
@ -1,20 +0,0 @@
|
|||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
/*
|
||||
* Copyright (C) 2018, Google Inc.
|
||||
*
|
||||
* libcamera.h - libcamera public API
|
||||
*/
|
||||
#ifndef __LIBCAMERA_LIBCAMERA_H__
|
||||
#define __LIBCAMERA_LIBCAMERA_H__
|
||||
|
||||
#include <libcamera/buffer.h>
|
||||
#include <libcamera/camera.h>
|
||||
#include <libcamera/camera_manager.h>
|
||||
#include <libcamera/event_dispatcher.h>
|
||||
#include <libcamera/event_notifier.h>
|
||||
#include <libcamera/request.h>
|
||||
#include <libcamera/signal.h>
|
||||
#include <libcamera/stream.h>
|
||||
#include <libcamera/timer.h>
|
||||
|
||||
#endif /* __LIBCAMERA_LIBCAMERA_H__ */
|
|
@ -6,7 +6,6 @@ libcamera_api = files([
|
|||
'event_notifier.h',
|
||||
'geometry.h',
|
||||
'ipa/ipa_module_info.h',
|
||||
'libcamera.h',
|
||||
'object.h',
|
||||
'request.h',
|
||||
'signal.h',
|
||||
|
@ -14,5 +13,14 @@ libcamera_api = files([
|
|||
'timer.h',
|
||||
])
|
||||
|
||||
gen_header = join_paths(meson.current_source_dir(), 'gen-header.sh')
|
||||
|
||||
libcamera_h = custom_target('gen-header',
|
||||
input : 'meson.build',
|
||||
output : 'libcamera.h',
|
||||
command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],
|
||||
install : true,
|
||||
install_dir : 'include/libcamera')
|
||||
|
||||
install_headers(libcamera_api,
|
||||
subdir : 'libcamera')
|
||||
|
|
|
@ -66,6 +66,6 @@ libcamera = shared_library('camera',
|
|||
include_directories : includes,
|
||||
dependencies : libudev)
|
||||
|
||||
libcamera_dep = declare_dependency(sources : libcamera_api,
|
||||
libcamera_dep = declare_dependency(sources : [libcamera_api, libcamera_h],
|
||||
include_directories : libcamera_includes,
|
||||
link_with : libcamera)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue