From 024f07d6d4da8b7eb873a35ed125c96ff56dc6db Mon Sep 17 00:00:00 2001 From: Colin Clark Date: Thu, 6 Jul 2023 10:01:16 +0100 Subject: [PATCH] Eliminate gq-marshal compile warning glib-genmarshal produces code that results in: warning: ISO C forbids conversion of object pointer to function pointer type [-Wpedantic] Insert a pragma at the start of the code to inhibit this. --- scripts/gq-marshal-pragma.sh | 33 +++++++++++++++++++++++++++++++++ scripts/meson.build | 1 + src/meson.build | 15 ++++++++++++--- 3 files changed, 46 insertions(+), 3 deletions(-) create mode 100755 scripts/gq-marshal-pragma.sh diff --git a/scripts/gq-marshal-pragma.sh b/scripts/gq-marshal-pragma.sh new file mode 100755 index 00000000..3daa6486 --- /dev/null +++ b/scripts/gq-marshal-pragma.sh @@ -0,0 +1,33 @@ +#!/bin/sh +#********************************************************************** +# Copyright (C) 2023 - The Geeqie Team +# +# Author: Colin Clark +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +#********************************************************************** + +## @file +## @brief Include pragma command at head of gq-marshal.c. +## +## $1 input - gq-marshal.c +## $2 output - gq-marshal-pragma.c +## +## The code produced by glib-genmarshal results in compile warnings. +## This scripts adds a pragma at the head of the file to prevent this. +## + +printf "#pragma GCC diagnostic ignored \"-Wpedantic\"\n" > "$2" +cat "$1" >> "$2" diff --git a/scripts/meson.build b/scripts/meson.build index 28f2bf77..1ed02aac 100644 --- a/scripts/meson.build +++ b/scripts/meson.build @@ -21,6 +21,7 @@ script_sources += files('authors.sh', 'generate-linuxdeploy-for-arm.sh', 'generate-man-page.sh', 'get-test-images.sh', +'gq-marshal-pragma.sh', 'image-test.sh', 'keyword_merge.sh', 'new-release.sh', diff --git a/src/meson.build b/src/meson.build index c430d6e8..69d80a9c 100644 --- a/src/meson.build +++ b/src/meson.build @@ -242,9 +242,18 @@ subdir('pan-view') subdir('ui') subdir('view-file') -gqmarshal = gnome.genmarshal('gq-marshal', prefix : 'gq_marshal', sources : 'gq-marshal.list') -project_sources += gqmarshal[0] -project_sources += gqmarshal[1] +gq_marshal = gnome.genmarshal('gq-marshal', prefix : 'gq_marshal', sources : 'gq-marshal.list') + +project_sources += gq_marshal[1] + +gq_marshal_pragma_sh = find_program('gq-marshal-pragma.sh', dirs : scriptsdir) + +gq_marshal_pragma = custom_target('gq-marshal-pragma', + input : gq_marshal[0], + output : 'gq-marshal-pragma.c', + command : [gq_marshal_pragma_sh, '@INPUT@', '@OUTPUT@']) + +project_sources += gq_marshal_pragma icon_pairs = [ 'icon_spinner', files('ui_spinner.png'), -- 2.20.1