utils: gen-shader-headers: Fix subproject build

Meson already takes care of passing the proper absolute or relative
paths to commands. There is no need do more path manipulation.

So simplify the script by using the paths as-is. This also fixes the
path manipulation issue that prevented libcamera from building as a
subproject.

Fixes: 19371dee41 ("utils: gen-shader-headers: Add a utility to generate headers from shaders")
Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Barnabás Pőcze
2025-12-15 10:37:06 +01:00
committed by Kieran Bingham
parent 34c5cf2480
commit f0499ecfc2
2 changed files with 7 additions and 9 deletions

View File

@@ -188,7 +188,7 @@ libcamera_shader_headers = custom_target(
'gen-shader-headers',
input : [shader_files],
output : 'glsl_shaders.h',
command : [gen_shader_headers, meson.project_source_root(), meson.project_build_root(), '@OUTPUT@', '@INPUT@'],
command : [gen_shader_headers, meson.project_source_root(), '@OUTPUT@', '@INPUT@'],
)
libcamera_internal_headers += libcamera_shader_headers

View File

@@ -3,14 +3,13 @@
set -e
usage() {
echo "Usage: $0 <src_dir> <build_dir> <output_header_name> <shader_file1> [shader_file2 ...]"
echo "Usage: $0 <src_dir> <output_header> <shader_file1> [shader_file2 ...]"
echo
echo "Generates a C header file containing hex-encoded shader data."
echo
echo "Arguments:"
echo " src_dir Path to the base of the source directory"
echo " build_dir Directory where shader files are located and header will be written"
echo " output_header_name Name of the generated header file (relative to build_dir)"
echo " output_header Path to the generated header file"
echo " shader_file(s) One or more shader files to embed in the header"
exit 1
}
@@ -21,8 +20,7 @@ if [ $# -lt 4 ]; then
fi
src_dir="$1"; shift
build_dir="$1"; shift
build_path=$build_dir/"$1"; shift
build_path="$1"; shift
cat <<EOF > "$build_path"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
@@ -40,7 +38,7 @@ cat <<EOF >> "$build_path"
EOF
for file in "$@"; do
name=$(basename "$build_dir/$file" | tr '.' '_')
name=$(basename "$file" | tr '.' '_')
echo "[SHADER-GEN] $name"
echo " * unsigned char $name;" >> "$build_path"
done
@@ -49,7 +47,7 @@ echo "*/" >> "$build_path"
echo "/* Hex encoded shader data */" >> "$build_path"
for file in "$@"; do
name=$(basename "$build_dir/$file")
"$src_dir/utils/gen-shader-header.py" "$name" "$build_dir/$file" >> "$build_path"
name=$(basename "$file")
"$src_dir/utils/gen-shader-header.py" "$name" "$file" >> "$build_path"
echo >> "$build_path"
done