From f0499ecfc2af70e9ac40d2853cce22a29a7db828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= Date: Mon, 15 Dec 2025 10:37:06 +0100 Subject: [PATCH] utils: gen-shader-headers: Fix subproject build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: 19371dee4146b7 ("utils: gen-shader-headers: Add a utility to generate headers from shaders") Signed-off-by: Barnabás Pőcze Reviewed-by: Laurent Pinchart Reviewed-by: Kieran Bingham Signed-off-by: Kieran Bingham --- src/libcamera/meson.build | 2 +- utils/gen-shader-headers.sh | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build index 90d434a5..575408b2 100644 --- a/src/libcamera/meson.build +++ b/src/libcamera/meson.build @@ -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 diff --git a/utils/gen-shader-headers.sh b/utils/gen-shader-headers.sh index 81bf1584..92f6f818 100755 --- a/utils/gen-shader-headers.sh +++ b/utils/gen-shader-headers.sh @@ -3,14 +3,13 @@ set -e usage() { - echo "Usage: $0 [shader_file2 ...]" + echo "Usage: $0 [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 < "$build_path" /* SPDX-License-Identifier: LGPL-2.1-or-later */ @@ -40,7 +38,7 @@ cat <> "$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