diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build
index 36de1c2a393c..87b9a9412fe7 100644
--- a/include/libcamera/meson.build
+++ b/include/libcamera/meson.build
@@ -107,16 +107,6 @@ formats_h = custom_target('formats_h',
                           install_dir : libcamera_headers_install_dir)
 libcamera_public_headers += formats_h
 
-# libcamera.h
-libcamera_h = custom_target('gen-header',
-                            input : 'meson.build',
-                            output : 'libcamera.h',
-                            command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],
-                            install : true,
-                            install_dir : libcamera_headers_install_dir)
-
-libcamera_public_headers += libcamera_h
-
 # version.h
 version = libcamera_version.split('.')
 libcamera_version_config = configuration_data()
@@ -129,3 +119,13 @@ version_h = configure_file(input : 'version.h.in',
                            configuration : libcamera_version_config,
                            install_dir : libcamera_headers_install_dir)
 libcamera_public_headers += version_h
+
+# libcamera.h
+libcamera_h = custom_target('gen-header',
+                            input : 'meson.build',
+                            output : 'libcamera.h',
+                            command : [gen_header, '@OUTPUT@', libcamera_public_headers],
+                            install : true,
+                            install_dir : libcamera_headers_install_dir)
+
+libcamera_public_headers += libcamera_h
diff --git a/utils/codegen/gen-header.sh b/utils/codegen/gen-header.sh
index d4692758eeb4..c78f085992ef 100755
--- a/utils/codegen/gen-header.sh
+++ b/utils/codegen/gen-header.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 
-src_dir="$1"
-dst_file="$2"
+dst_file="$1"
+shift
 
 cat <<EOF > "$dst_file"
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
@@ -16,9 +16,8 @@ cat <<EOF > "$dst_file"
 
 EOF
 
-headers=$(for header in "$src_dir"/*.h "$src_dir"/*.h.in ; do
+headers=$(for header in "$@" ; do
 	header=$(basename "$header")
-	header="${header%.in}"
 	echo "$header"
 done | sort)
 
