[Spice-devel] [PATCH spice-gtk v4 1/3] Rename generated vncdisplaykeymap_*.c files to .h
Eduardo Lima (Etrunko)
etrunko at redhat.com
Mon Aug 13 12:44:58 UTC 2018
On 13/08/18 07:23, Frediano Ziglio wrote:
>>
>> Ninja parallel build fails in certain environments, so it is required
>> specify those files as a dependency so that vncdisplaykeymap.c will only
>> be built after all files it depends on are generated.
>>
>> The problem is that, when using meson declare_dependency() function,
>> only header files should be used as the "sources" keyword, as documented
>> in
>> http://mesonbuild.com/Wrap-best-practices-and-tips.html#declare-generated-headers-explicitly
>> and
>> http://mesonbuild.com/Wrap-best-practices-and-tips.html#avoid-exposing-compilable-source-files-in-declare_dependency
>>
>> Signed-off-by: Eduardo Lima (Etrunko) <etrunko at redhat.com>
>
> Patch looks good for me, however the problem is not the file extensions, but the
> dependencies declaration. Is not the library that is dependent directly on these
> files, is the C file (src/vncdisplaykeymap.c) which is dependent directly on these files.
> So it is the meson.build file that should be updated to reflect this.
> Does Meson lack the possibility to specify dependencies between source files?
Yes, this is the issue, as far as I know, it is not possible to declare
dependency between files.
>
> Frediano
>
>> ---
>> src/Makefile.am | 28 ++++++++++++++--------------
>> src/vncdisplaykeymap.c | 14 +++++++-------
>> 2 files changed, 21 insertions(+), 21 deletions(-)
>>
>> diff --git a/src/Makefile.am b/src/Makefile.am
>> index afad922..e362b02 100644
>> --- a/src/Makefile.am
>> +++ b/src/Makefile.am
>> @@ -2,13 +2,13 @@ NULL =
>> SUBDIRS =
>>
>> KEYMAPS = \
>> - vncdisplaykeymap_xorgevdev2xtkbd.c \
>> - vncdisplaykeymap_xorgkbd2xtkbd.c \
>> - vncdisplaykeymap_xorgxquartz2xtkbd.c \
>> - vncdisplaykeymap_xorgxwin2xtkbd.c \
>> - vncdisplaykeymap_osx2xtkbd.c \
>> - vncdisplaykeymap_win322xtkbd.c \
>> - vncdisplaykeymap_x112xtkbd.c \
>> + vncdisplaykeymap_xorgevdev2xtkbd.h \
>> + vncdisplaykeymap_xorgkbd2xtkbd.h \
>> + vncdisplaykeymap_xorgxquartz2xtkbd.h \
>> + vncdisplaykeymap_xorgxwin2xtkbd.h \
>> + vncdisplaykeymap_osx2xtkbd.h \
>> + vncdisplaykeymap_win322xtkbd.h \
>> + vncdisplaykeymap_x112xtkbd.h \
>> $(NULL)
>>
>> # End users build dependencies can be cleaned
>> @@ -471,25 +471,25 @@ spice-widget-enums.h: spice-widget.h
>> vncdisplaykeymap.c: $(KEYMAPS)
>> $(KEYMAPS): $(srcdir)/$(KEYMAP_GEN) $(srcdir)/$(KEYMAP_CSV)
>>
>> -vncdisplaykeymap_xorgevdev2xtkbd.c:
>> +vncdisplaykeymap_xorgevdev2xtkbd.h:
>> $(AM_V_GEN)$(PYTHON) $(srcdir)/$(KEYMAP_GEN) --lang glib2 --varname
>> keymap_xorgevdev2xtkbd code-map $(srcdir)/$(KEYMAP_CSV) xorgevdev xtkbd >
>> $@ || rm $@
>>
>> -vncdisplaykeymap_xorgkbd2xtkbd.c:
>> +vncdisplaykeymap_xorgkbd2xtkbd.h:
>> $(AM_V_GEN)$(PYTHON) $(srcdir)/$(KEYMAP_GEN) --lang glib2 --varname
>> keymap_xorgkbd2xtkbd code-map $(srcdir)/$(KEYMAP_CSV) xorgkbd xtkbd > $@
>> || rm $@
>>
>> -vncdisplaykeymap_xorgxquartz2xtkbd.c:
>> +vncdisplaykeymap_xorgxquartz2xtkbd.h:
>> $(AM_V_GEN)$(PYTHON) $(srcdir)/$(KEYMAP_GEN) --lang glib2 --varname
>> keymap_xorgxquartz2xtkbd code-map $(srcdir)/$(KEYMAP_CSV) xorgxquartz
>> xtkbd > $@ || rm $@
>>
>> -vncdisplaykeymap_xorgxwin2xtkbd.c:
>> +vncdisplaykeymap_xorgxwin2xtkbd.h:
>> $(AM_V_GEN)$(PYTHON) $(srcdir)/$(KEYMAP_GEN) --lang glib2 --varname
>> keymap_xorgxwin2xtkbd code-map $(srcdir)/$(KEYMAP_CSV) xorgxwin xtkbd > $@
>> || rm $@
>>
>> -vncdisplaykeymap_osx2xtkbd.c:
>> +vncdisplaykeymap_osx2xtkbd.h:
>> $(AM_V_GEN)$(PYTHON) $(srcdir)/$(KEYMAP_GEN) --lang glib2 --varname
>> keymap_osx2xtkbd code-map $(srcdir)/$(KEYMAP_CSV) osx xtkbd > $@ || rm $@
>>
>> -vncdisplaykeymap_win322xtkbd.c:
>> +vncdisplaykeymap_win322xtkbd.h:
>> $(AM_V_GEN)$(PYTHON) $(srcdir)/$(KEYMAP_GEN) --lang glib2 --varname
>> keymap_win322xtkbd code-map $(srcdir)/$(KEYMAP_CSV) win32 xtkbd > $@ || rm
>> $@
>>
>> -vncdisplaykeymap_x112xtkbd.c:
>> +vncdisplaykeymap_x112xtkbd.h:
>> $(AM_V_GEN)$(PYTHON) $(srcdir)/$(KEYMAP_GEN) --lang glib2 --varname
>> keymap_x112xtkbd code-map $(srcdir)/$(KEYMAP_CSV) x11 xtkbd > $@ || rm $@
>>
>> -include $(INTROSPECTION_MAKEFILE)
>> diff --git a/src/vncdisplaykeymap.c b/src/vncdisplaykeymap.c
>> index e1a16aa..e09e330 100644
>> --- a/src/vncdisplaykeymap.c
>> +++ b/src/vncdisplaykeymap.c
>> @@ -66,7 +66,7 @@ static unsigned int ref_count_for_untranslated_keys = 0;
>>
>> #if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WAYLAND)
>> /* Xorg Linux + evdev (offset evdev keycodes) */
>> -#include "vncdisplaykeymap_xorgevdev2xtkbd.c"
>> +#include "vncdisplaykeymap_xorgevdev2xtkbd.h"
>> #endif
>>
>> #ifdef GDK_WINDOWING_X11
>> @@ -76,11 +76,11 @@ static unsigned int ref_count_for_untranslated_keys = 0;
>> #include <string.h>
>>
>> /* Xorg Linux + kbd (offset + mangled XT keycodes) */
>> -#include "vncdisplaykeymap_xorgkbd2xtkbd.c"
>> +#include "vncdisplaykeymap_xorgkbd2xtkbd.h"
>> /* Xorg OS-X aka XQuartz (offset OS-X keycodes) */
>> -#include "vncdisplaykeymap_xorgxquartz2xtkbd.c"
>> +#include "vncdisplaykeymap_xorgxquartz2xtkbd.h"
>> /* Xorg Cygwin aka XWin (offset + mangled XT keycodes) */
>> -#include "vncdisplaykeymap_xorgxwin2xtkbd.c"
>> +#include "vncdisplaykeymap_xorgxwin2xtkbd.h"
>>
>> #endif
>>
>> @@ -88,19 +88,19 @@ static unsigned int ref_count_for_untranslated_keys = 0;
>> #include <gdk/gdkwin32.h>
>>
>> /* Win32 native virtual keycodes */
>> -#include "vncdisplaykeymap_win322xtkbd.c"
>> +#include "vncdisplaykeymap_win322xtkbd.h"
>> #endif
>>
>> #ifdef GDK_WINDOWING_QUARTZ
>> #include <gdk/gdkquartz.h>
>>
>> /* OS-X native keycodes */
>> -#include "vncdisplaykeymap_osx2xtkbd.c"
>> +#include "vncdisplaykeymap_osx2xtkbd.h"
>> #endif
>>
>> #ifdef GDK_WINDOWING_BROADWAY
>> /* X11 keysyms */
>> -#include "vncdisplaykeymap_x112xtkbd.c"
>> +#include "vncdisplaykeymap_x112xtkbd.h"
>> #endif
>>
>> #ifdef GDK_WINDOWING_X11
--
Eduardo de Barros Lima (Etrunko)
Software Engineer - RedHat
etrunko at redhat.com
More information about the Spice-devel
mailing list