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',
|
'event_notifier.h',
|
||||||
'geometry.h',
|
'geometry.h',
|
||||||
'ipa/ipa_module_info.h',
|
'ipa/ipa_module_info.h',
|
||||||
'libcamera.h',
|
|
||||||
'object.h',
|
'object.h',
|
||||||
'request.h',
|
'request.h',
|
||||||
'signal.h',
|
'signal.h',
|
||||||
|
@ -14,5 +13,14 @@ libcamera_api = files([
|
||||||
'timer.h',
|
'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,
|
install_headers(libcamera_api,
|
||||||
subdir : 'libcamera')
|
subdir : 'libcamera')
|
||||||
|
|
|
@ -66,6 +66,6 @@ libcamera = shared_library('camera',
|
||||||
include_directories : includes,
|
include_directories : includes,
|
||||||
dependencies : libudev)
|
dependencies : libudev)
|
||||||
|
|
||||||
libcamera_dep = declare_dependency(sources : libcamera_api,
|
libcamera_dep = declare_dependency(sources : [libcamera_api, libcamera_h],
|
||||||
include_directories : libcamera_includes,
|
include_directories : libcamera_includes,
|
||||||
link_with : libcamera)
|
link_with : libcamera)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue