[PATCH v1] libcamera: tracing: fix header generation when built as subproject
Barnabás Pőcze
pobrn at protonmail.com
Wed Nov 9 17:36:14 CET 2022
The previously used
path = output.replace('include/', '', 1)
logic is not sufficient to correctly determine the proper path
when libcamera is built as a subproject. Fix it by using Python's
pathlib to calculate the relative path of the output file with
respect to the "include" directory of libcamera.
Signed-off-by: Barnabás Pőcze <pobrn at protonmail.com>
---
include/libcamera/internal/meson.build | 2 +-
include/meson.build | 2 ++
utils/tracepoints/gen-tp-header.py | 13 +++++++------
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/include/libcamera/internal/meson.build b/include/libcamera/internal/meson.build
index 7a780d48ee57..f8be86e040c5 100644
--- a/include/libcamera/internal/meson.build
+++ b/include/libcamera/internal/meson.build
@@ -6,7 +6,7 @@ libcamera_tracepoint_header = custom_target(
'tp_header',
input: ['tracepoints.h.in', tracepoint_files],
output: 'tracepoints.h',
- command: [gen_tracepoints_header, '@OUTPUT@', '@INPUT@'],
+ command: [gen_tracepoints_header, include_build_dir, '@OUTPUT@', '@INPUT@'],
)
libcamera_internal_headers = files([
diff --git a/include/meson.build b/include/meson.build
index 27ce2f41c534..19b93a7bd753 100644
--- a/include/meson.build
+++ b/include/meson.build
@@ -1,4 +1,6 @@
# SPDX-License-Identifier: CC0-1.0
+include_build_dir = meson.current_build_dir()
+
subdir('android')
subdir('libcamera')
diff --git a/utils/tracepoints/gen-tp-header.py b/utils/tracepoints/gen-tp-header.py
index bbd472d972d0..a454615e4625 100755
--- a/utils/tracepoints/gen-tp-header.py
+++ b/utils/tracepoints/gen-tp-header.py
@@ -8,22 +8,23 @@
import datetime
import jinja2
+import pathlib
import os
import sys
def main(argv):
- if len(argv) < 3:
- print(f'Usage: {argv[0]} output template tp_files...')
+ if len(argv) < 4:
+ print(f'Usage: {argv[0]} include_build_dir output template tp_files...')
return 1
- output = argv[1]
- template = argv[2]
+ output = argv[2]
+ template = argv[3]
year = datetime.datetime.now().year
- path = output.replace('include/', '', 1)
+ path = pathlib.Path(output).absolute().relative_to(argv[1])
source = ''
- for fname in argv[3:]:
+ for fname in argv[4:]:
source += open(fname, 'r', encoding='utf-8').read() + '\n\n'
template = jinja2.Template(open(template, 'r', encoding='utf-8').read())
--
2.38.1
More information about the libcamera-devel
mailing list