From 63dbe4ffa62a1ffc8ac4d90d4dd39816ddee8b82 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Wed, 24 Nov 2021 17:42:16 +0100 Subject: Use config.vapi to include config.h Thank you to ricotz on #vala. --- Makefile.am | 6 +++++- config.vapi | 28 ++++++++++++++++++++++++++++ gen-meson.build | 18 +++++++++++++++++- meson.am | 2 +- src/Makefile.am | 2 +- src/client/Makefile.am | 2 +- src/ui/Makefile.am | 46 +++++----------------------------------------- src/ui/main.vala | 10 ++-------- 8 files changed, 60 insertions(+), 54 deletions(-) create mode 100644 config.vapi diff --git a/Makefile.am b/Makefile.am index 16f3e50..0d77c54 100644 --- a/Makefile.am +++ b/Makefile.am @@ -41,7 +41,11 @@ include icons.am include settings.am include meson.am -EXTRA_DIST += $(top_srcdir)/.version $(top_srcdir)/.release-date +EXTRA_DIST += \ + $(top_srcdir)/.version \ + $(top_srcdir)/.release-date \ + $(srcdir)/config.vapi + BUILT_SOURCES += $(top_srcdir)/.version $(top_srcdir)/.release-date $(top_srcdir)/.version: echo $(VERSION) > $@-t diff --git a/config.vapi b/config.vapi new file mode 100644 index 0000000..15d76c7 --- /dev/null +++ b/config.vapi @@ -0,0 +1,28 @@ +// disfluid, implementation of the Solid specification +// Copyright (C) 2021 Vivien Kraus + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "config.h")] +namespace Build { + public const string GETTEXT_PACKAGE; + public const string PACKAGE; + public const string PACKAGE_NAME; + public const string PACKAGE_BUGREPORT; + public const string PACKAGE_STRING; + public const string PACKAGE_URL; + public const string PACKAGE_VERSION; + public const string VERSION; + public const string LOCALEDIR; +} \ No newline at end of file diff --git a/gen-meson.build b/gen-meson.build index 1f2ac2d..fd88d46 100755 --- a/gen-meson.build +++ b/gen-meson.build @@ -15,7 +15,7 @@ printf "], language: 'vala')\n" COMMA="" printf "executable('disfluid-gui', files(" -for source in $src_ui_disfluid_gui_VALASOURCES $dist_vapi_DATA +for source in $src_ui_disfluid_gui_SOURCES do printf "%s'%s'" "$COMMA" "$source" COMMA="," @@ -36,4 +36,20 @@ do printf "%s'%s'" "$COMMA" "$c_arg" COMMA="," done +printf "], link_args: [" + +COMMA="" +for link_arg in $src_ui_disfluid_gui_LDADD +do + case "$link_arg" in + *.la) + printf "%s'%s/%s/.libs/%s.so'" "$COMMA" \ + "$abs_top_builddir" \ + "$(dirname $link_arg)" \ + "$(basename $link_arg .la)";; + *) + printf "%s'%s'" "$COMMA" "$link_arg";; + esac + COMMA="," +done printf "])\n" diff --git a/meson.am b/meson.am index 22e75ce..22d7293 100644 --- a/meson.am +++ b/meson.am @@ -17,5 +17,5 @@ EXTRA_DIST += %reldir%/gen-meson.build meson.build: %reldir%/gen-meson.build config.status - $(AM_V_GEN) PACKAGE="$(PACKAGE)" src_ui_disfluid_gui_VALASOURCES="$(src_ui_disfluid_gui_VALASOURCES)" src_ui_disfluid_gui_CFLAGS="$(src_ui_disfluid_gui_CFLAGS)" src_ui_disfluid_gui_LDADD="$(src_ui_difsluid_gui_LDADD)" dist_vapi_DATA="$(dist_vapi_DATA)" AM_VALAFLAGS="$(AM_VALAFLAGS)" $(SHELL) $< > $@-t + $(AM_V_GEN) abs_top_builddir="$(abs_top_builddir)" abs_top_srcdir="$(abs_top_srcdir)" PACKAGE="$(PACKAGE)" src_ui_disfluid_gui_SOURCES="$(src_ui_disfluid_gui_SOURCES)" src_ui_disfluid_gui_CFLAGS="$(AM_CPPFLAGS) $(src_ui_disfluid_gui_CFLAGS)" src_ui_disfluid_gui_LDADD="$(src_ui_disfluid_gui_LDADD)" dist_vapi_DATA="$(dist_vapi_DATA)" AM_VALAFLAGS="$(AM_VALAFLAGS)" $(SHELL) $< > $@-t @mv $@-t $@ diff --git a/src/Makefile.am b/src/Makefile.am index 61a4166..2062e47 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -18,7 +18,7 @@ lib_LTLIBRARIES += %reldir%/libwebidoidc.la dist_bin_SCRIPTS += %reldir%/disfluid %reldir%/disfluid-hello %reldir%/disfluid-example-app -AM_CPPFLAGS += -I %reldir% -I $(srcdir)/%reldir% +AM_CPPFLAGS += -I%reldir% -I$(srcdir)/%reldir% GUILD_OPTIONS = diff --git a/src/client/Makefile.am b/src/client/Makefile.am index 04b5bc9..fce2bfb 100644 --- a/src/client/Makefile.am +++ b/src/client/Makefile.am @@ -20,7 +20,7 @@ include_HEADERS += %reldir%/Disfluid-0.h %canon_reldir%_libwebidoidc_client_la_LIBADD = $(GUILE_LIBS) -AM_CFLAGS += -I%reldir% -I$(srcdir)/%reldir% +AM_CFLAGS += -I%reldir% -I$(abs_top_srcdir)/%reldir% INDENTED += %reldir%/libwebidoidc-client.c %reldir%/Disfluid-0.h diff --git a/src/ui/Makefile.am b/src/ui/Makefile.am index 7fd1984..685bebe 100644 --- a/src/ui/Makefile.am +++ b/src/ui/Makefile.am @@ -32,12 +32,11 @@ libexec_PROGRAMS += %reldir%/disfluid-gui AM_VALAFLAGS += --pkg=gio-2.0 -%canon_reldir%_disfluid_gui_VALASOURCES = \ - %reldir%/main.vala \ - %reldir%/settings.vala - %canon_reldir%_disfluid_gui_SOURCES = \ - $(%canon_reldir%_disfluid_gui_VALASOURCES:.vala=.c) + %reldir%/main.vala \ + %reldir%/settings.vala \ + $(dist_vapi_DATA) \ + config.vapi %canon_reldir%_disfluid_gui_CFLAGS = \ $(AM_CFLAGS) \ @@ -52,39 +51,4 @@ AM_VALAFLAGS += --pkg=gio-2.0 $(GIO_LIBS) \ $(lib_LTLIBRARIES) -EXTRA_DIST += \ - $(%canon_reldir%_disfluid_gui_VALASOURCES) \ - %reldir%/disfluid-gui-valasources.stamp - -$(srcdir)/%reldir%/disfluid-gui-valasources.stamp: $(%canon_reldir%_disfluid_gui_VALASOURCES) $(dist_vapi_DATA) - $(AM_V_at)rm -f $@ && echo stamp > $@-t - $(AM_V_VALAC)$(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS) -C $^ -d $(srcdir)/%reldir% - $(AM_V_at)for source in $^; do case $$source in *.vala) generated=$$(echo "$$source" | sed 's/\.vala$$/.c/'); (echo '#ifdef HAVE_CONFIG_H' ; echo '#include '; echo '#endif' ; cat $$generated) > $$generated-t ; mv $$generated-t $$generated ;; esac done - $(AM_V_at)mv -f $@-t $@ - -## This rule is adapted from the Automake FAQ: -$(%canon_reldir%_disfluid_gui_VALASOURCES:.vala=.c): %reldir%/disfluid-gui-valasources.stamp -## Recover from the removal of $(srcdir)/$@ - @dry=; for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=*|--*);; \ - *n*) dry=:;; \ - esac; \ - done; \ - if test -f $(srcdir)/$@; then :; else \ - $$dry trap 'rm -rf $(srcdir)/%reldir%/disfluid-gui-valasources.lock $<' 1 2 13 15; \ - if $$dry mkdir $(srcdir)/%reldir%/disfluid-gui-valasources.lock 2>/dev/null; then \ -## This code is being executed by the first process. - $$dry rm -f $<; \ - $(MAKE) $(AM_MAKEFLAGS) $<; \ - $$dry rmdir $(srcdir)/%reldir%/disfluid-gui-valasources.lock; \ - else \ -## This code is being executed by the follower processes. -## Wait until the first process is done. - while test -d $(srcdir)/%reldir%/disfluid-gui-valasources.lock && test -z "$$dry"; do \ - sleep 1; \ - done; \ -## Succeed if and only if the first process succeeded. - $$dry test -f $<; exit $$?; \ - fi; \ - fi +EXTRA_DIST += diff --git a/src/ui/main.vala b/src/ui/main.vala index 82dc9d1..f0712e1 100644 --- a/src/ui/main.vala +++ b/src/ui/main.vala @@ -14,18 +14,12 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -[CCode (cname="PACKAGE")] -extern const string PACKAGE; - -[CCode (cname="LOCALEDIR")] -extern const string LOCALEDIR; - namespace Disfluid { class Main: GLib.Object { public static int main (string[] args) { GLib.Intl.setlocale (GLib.LocaleCategory.ALL, ""); - GLib.Intl.bindtextdomain (PACKAGE, LOCALEDIR); - GLib.Intl.textdomain (PACKAGE); + GLib.Intl.bindtextdomain (Build.PACKAGE, Build.LOCALEDIR); + GLib.Intl.textdomain (Build.PACKAGE); int return_code = 1; Disfluid.Api.init ((api) => { var settings = new Disfluid.Settings (api); -- cgit v1.2.3