[libcamera-devel,v4,1/6] include: libcamera: Improve automation of libcamera.h generation

Message ID 20200308000433.2917-2-laurent.pinchart@ideasonboard.com
State Accepted
Commit 00804512c6c091b3062beced6085b1b65badb8b8
Headers show
Series
  • Fix race condition and other build issues
Related show

Commit Message

Laurent Pinchart March 8, 2020, 12:04 a.m. UTC
The gen-header.sh script that generates libcamera.h takes all .h files
in the include/libcamera/ directory, and manually adds the generated
control_ids.h and version.h. This is fragile, as shown by the failure to
add property_ids.h to the list in commit f870591a9bf5 ("libcamera:
properties: Add location property").

To avoid future omissions, take all the .h.in files into account to
generate libcamera.h. This also fixes the missing property_ids.h.

Fixes: f870591a9bf5 ("libcamera: properties: Add location property")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
 include/libcamera/gen-header.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Niklas Söderlund March 8, 2020, 5:11 p.m. UTC | #1
Hi Laurent,

Thanks for your patch.

On 2020-03-08 02:04:28 +0200, Laurent Pinchart wrote:
> The gen-header.sh script that generates libcamera.h takes all .h files
> in the include/libcamera/ directory, and manually adds the generated
> control_ids.h and version.h. This is fragile, as shown by the failure to
> add property_ids.h to the list in commit f870591a9bf5 ("libcamera:
> properties: Add location property").
> 
> To avoid future omissions, take all the .h.in files into account to
> generate libcamera.h. This also fixes the missing property_ids.h.
> 
> Fixes: f870591a9bf5 ("libcamera: properties: Add location property")
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>

> ---
>  include/libcamera/gen-header.sh | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/include/libcamera/gen-header.sh b/include/libcamera/gen-header.sh
> index 7f7816c9f879..fcb9c5e16d07 100755
> --- a/include/libcamera/gen-header.sh
> +++ b/include/libcamera/gen-header.sh
> @@ -16,10 +16,11 @@ cat <<EOF > "$dst_file"
>  
>  EOF
>  
> -headers=$(for header in "$src_dir"/*.h ; do
> +headers=$(for header in "$src_dir"/*.h "$src_dir"/*.h.in ; do
>  	header=$(basename "$header")
> +	header="${header%.in}"
>  	echo "$header"
> -done ; echo "control_ids.h" ; echo "version.h" | sort)
> +done | sort)
>  
>  for header in $headers ; do
>  	echo "#include <libcamera/$header>" >> "$dst_file"
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

Patch

diff --git a/include/libcamera/gen-header.sh b/include/libcamera/gen-header.sh
index 7f7816c9f879..fcb9c5e16d07 100755
--- a/include/libcamera/gen-header.sh
+++ b/include/libcamera/gen-header.sh
@@ -16,10 +16,11 @@  cat <<EOF > "$dst_file"
 
 EOF
 
-headers=$(for header in "$src_dir"/*.h ; do
+headers=$(for header in "$src_dir"/*.h "$src_dir"/*.h.in ; do
 	header=$(basename "$header")
+	header="${header%.in}"
 	echo "$header"
-done ; echo "control_ids.h" ; echo "version.h" | sort)
+done | sort)
 
 for header in $headers ; do
 	echo "#include <libcamera/$header>" >> "$dst_file"