[recipes] Stop hardcoding PKGDATADIR in cuisine.css



commit dc9dc74f44a3248b40cd88263cdcd2d905c723cf
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Feb 28 07:33:05 2017 -0500

    Stop hardcoding PKGDATADIR in cuisine.css
    
    Instead, replace @pkgdatadir@ at runtime. This turns
    out to not only fix relocatability on OS X, but also
    simplify our build machinery.

 src/Makefile.am                     |   17 +----------------
 src/{cuisine.css.in => cuisine.css} |    0
 src/gr-cuisine.c                    |   19 +++++++++++++++++--
 src/meson.build                     |   14 +-------------
 src/recipes-generated.gresource.xml |    6 ------
 src/recipes-images.gresource.xml    |    1 +
 6 files changed, 20 insertions(+), 37 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index e421d46..95e5b3f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -130,7 +130,6 @@ gnome_recipes_SOURCES = \
        gr-window.c             \
        resources-ui.c          \
        resources-images.c      \
-       resources-generated.c   \
        types.h                 \
        types.c                 \
        gr-shell-search-provider.h \
@@ -141,7 +140,6 @@ gnome_recipes_SOURCES = \
 BUILT_SOURCES = \
        resources-ui.c          \
        resources-images.c      \
-       resources-generated.c   \
        ingredients.inc         \
        no-ingredients.inc      \
        segments.inc            \
@@ -153,11 +151,9 @@ BUILT_SOURCES = \
 DISTCLEANFILES = \
        resources-ui.c          \
        resources-images.c      \
-       resources-generated.c   \
        ingredients.inc         \
        no-ingredients.inc      \
        segments.inc            \
-       cuisine.css             \
        types.h                 \
        types.c                 \
        gr-shell-search-provider-dbus.h \
@@ -184,12 +180,6 @@ resources-images.c: recipes-images.gresource.xml $(resource_image_files)
        $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/recipes-images.gresource.xml \
                --target=$@ --sourcedir=$(srcdir) --generate-source
 
-resource_generated_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(builddir) --generate-dependencies 
$(srcdir)/recipes-generated.gresource.xml)
-
-resources-generated.c: recipes-generated.gresource.xml $(resource_generated_files)
-       $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/recipes-generated.gresource.xml \
-               --target=$@ --sourcedir=$(builddir) --generate-source
-
 types.h: types.h.template gr-diet.h
        $(AM_V_GEN) ($(GLIB_MKENUMS) --template $^ ) > xgen-eh && \
        cp xgen-eh $@ && \
@@ -207,18 +197,13 @@ gr-shell-search-provider-dbus.h gr-shell-search-provider-dbus.c: Makefile.am $(s
                --generate-c-code gr-shell-search-provider-dbus \
                $(srcdir)/shell-search-provider-dbus-interfaces.xml
 
-cuisine.css: cuisine.css.in
-       $(AM_V_GEN) sed -e "s|\@pkgdatadir\@|$(pkgdatadir)|" $< > $@
-
 EXTRA_DIST = \
        shell-search-provider-dbus-interfaces.xml       \
        recipes-ui.gresource.xml                        \
        recipes-images.gresource.xml                    \
-       recipes-generated.gresource.xml                 \
        $(resource_ui_files)                            \
        $(resource_image_files)                         \
        types.h.template                                \
-       types.c.template                                \
-       cuisine.css.in
+       types.c.template
 
 -include $(top_srcdir)/git.mk
diff --git a/src/cuisine.css.in b/src/cuisine.css
similarity index 100%
rename from src/cuisine.css.in
rename to src/cuisine.css
diff --git a/src/gr-cuisine.c b/src/gr-cuisine.c
index cc879fe..234c7ea 100644
--- a/src/gr-cuisine.c
+++ b/src/gr-cuisine.c
@@ -23,6 +23,7 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 
+#include "gr-utils.h"
 #include "gr-cuisine.h"
 
 
@@ -159,7 +160,9 @@ gr_cuisine_get_css (void)
 {
         g_autoptr(GFile) file = NULL;
         const char *path;
-        char *css;
+        g_autofree char *css = NULL;
+        GString *s = NULL;
+        char *p, *q;
 
         if (g_file_test ("cuisine.css", G_FILE_TEST_EXISTS)) {
                 path = "cuisine.css";
@@ -176,5 +179,17 @@ gr_cuisine_get_css (void)
         g_message ("Load CSS from: %s", path);
         g_file_load_contents (file, NULL, &css, NULL, NULL, NULL);
 
-        return css;
+        s = g_string_new ("");
+        p = css;
+        while (1) {
+                q = strstr (p, "@pkgdatadir@");
+                if (!p) {
+                        g_string_append (s, p);
+                        break;
+                }
+                g_string_append_len (s, p, q - p);
+                g_string_append (s, get_pkg_data_dir ());
+        }
+
+        return g_string_free (s, FALSE);
 }
diff --git a/src/meson.build b/src/meson.build
index cd6b4bb..3fe3e2c 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -3,11 +3,6 @@ gnome = import('gnome')
 src = []
 enums = []
 
-# Used in recipes-images.gresource.xml
-cuisine_css = configure_file(output : 'cuisine.css',
-                             input : 'cuisine.css.in',
-                             configuration : conf)
-
 # These generated files are #included
 list_to_c = find_program('list_to_c.py')
 foreach f : ['segments', 'ingredients']
@@ -36,12 +31,6 @@ resources_images = gnome.compile_resources('resources_images',
                                        c_name: '_recipes_images',
                                        source_dir: 'src')
 
-resources_generated = gnome.compile_resources('resources_generated',
-                                       'recipes-generated.gresource.xml',
-                                       c_name: '_recipes_generated',
-                                       source_dir: 'src',
-                                       dependencies: cuisine_css)
-
 enums += gnome.mkenums('types',
                        sources: 'gr-diet.h',
                        c_template: 'types.c.template',
@@ -112,8 +101,7 @@ src += ['main.c',
   enums,
   search_provider,
   resources_ui,
-  resources_images,
-  resources_generated]
+  resources_images]
 
 executable('gnome-recipes',
            src,
diff --git a/src/recipes-images.gresource.xml b/src/recipes-images.gresource.xml
index fa754f1..8f8f3af 100644
--- a/src/recipes-images.gresource.xml
+++ b/src/recipes-images.gresource.xml
@@ -3,6 +3,7 @@
   <gresource prefix="/org/gnome/Recipes">
     <file>org.gnome.Recipes-symbolic.symbolic.png</file>
     <file>recipes.css</file>
+    <file>cuisine.css</file>
     <file>icons/16x16/apps/garlic-content-symbolic.symbolic.png</file>
     <file>icons/24x24/apps/garlic-content-symbolic.symbolic.png</file>
     <file>icons/32x32/apps/garlic-content-symbolic.symbolic.png</file>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]