This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository elimine.

View the commit online.

commit 82f641c93077e36e4a0a55977aab5064e6419a4e
Author: Vincent Torri <vto...@outlook.fr>
AuthorDate: Mon Jul 7 20:00:36 2025 +0200

    detect images at runtime
---
 data/images/meson.build |  6 ++++++
 meson.build             | 17 +++++++++++++++++
 src/bin/icon.c          | 35 ++++++++++++++++++++++++++---------
 src/bin/icon.h          |  2 +-
 src/bin/meson.build     |  3 ++-
 5 files changed, 52 insertions(+), 11 deletions(-)

diff --git a/data/images/meson.build b/data/images/meson.build
new file mode 100644
index 0000000..abe665f
--- /dev/null
+++ b/data/images/meson.build
@@ -0,0 +1,6 @@
+# SPDX-FileCopyrightText: Vincent Torri <vincent.to...@gmail.com>
+# SPDX-License-Identifier: BSD-2-Clause
+
+install_data([ 'ciphers.png', 'smileys.png', 'tiles.png' ],
+  install_dir: dir_pkgdata / 'images'
+)
diff --git a/meson.build b/meson.build
index 13ddcbc..eb252df 100644
--- a/meson.build
+++ b/meson.build
@@ -11,7 +11,24 @@ project('elimine', 'c',
   meson_version   : '>= 0.60',
 )
 
+# install paths
+dir_prefix = get_option('prefix')
+dir_data = join_paths(dir_prefix, get_option('datadir'))
+dir_pkgdata = join_paths(dir_data, meson.project_name())
+
 efl_req = '>= 1.27'
 elm_deps = dependency('elementary', version : efl_req)
 
+# configuration
+config_dir = [include_directories('.')]
+config_h = configuration_data()
+config_h.set_quoted('PACKAGE_NAME', meson.project_name())
+config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
+config_h.set_quoted('PACKAGE_DATA_DIR', dir_data)
+config_h.set_quoted('PACKAGE_PKGDATA_DIR', dir_pkgdata)
+
 subdir('src/bin')
+subdir('data/images')
+
+# use config_h after all subdirs have set values
+configure_file(output : 'config.h', configuration : config_h)
diff --git a/src/bin/icon.c b/src/bin/icon.c
index 1dbf38d..a6a3121 100644
--- a/src/bin/icon.c
+++ b/src/bin/icon.c
@@ -8,6 +8,7 @@
 #include <Eina.h>
 #include <Evas.h>
 
+#include "config.h"
 #include "icon.h"
 
 typedef struct
@@ -61,7 +62,7 @@ typedef struct Icon Icon;
 
 struct Icon
 {
-    const char *filename;
+    Eina_Strbuf *buf;
     Offset *offset;
     unsigned int **data;
     int w;
@@ -73,7 +74,6 @@ struct Icon
 unsigned int ** icon_create(Evas_Object *win, const Icon *ic)
 {
     Evas_Object *o;
-    const char *filename;
     unsigned int *m;
     unsigned int **data;
     int img_w;
@@ -81,15 +81,13 @@ unsigned int ** icon_create(Evas_Object *win, const Icon *ic)
     int idx;
     Evas_Load_Error err;
 
-    filename = ic->filename;
-
     o = evas_object_image_filled_add(evas_object_evas_get(win));
-    evas_object_image_file_set(o, filename, NULL);
+    evas_object_image_file_set(o, eina_strbuf_string_get(ic->buf), NULL);
     err = evas_object_image_load_error_get(o);
     if (err != EVAS_LOAD_ERROR_NONE)
     {
         fprintf(stderr, "could not load image '%s'. error string is \"%s\"\n",
-                filename, evas_load_error_str(err));
+                eina_strbuf_string_get(ic->buf), evas_load_error_str(err));
         return NULL;
     }
 
@@ -141,11 +139,20 @@ unsigned int ** icon_create(Evas_Object *win, const Icon *ic)
     return NULL;
 }
 
-void icon_init(Evas_Object *win, int tile_sz)
+Eina_Bool icon_init(Evas_Object *win, int tile_sz)
 {
+    Eina_Strbuf *buf;
     Icon ic;
+    Eina_Bool ret = EINA_FALSE;
 
-    ic.filename = "C:/Documents/msys2_2/home/vincent.torri/gitroot/elimine/data/images/countersmall.png";
+    buf = eina_strbuf_new();
+    if (!buf)
+        return ret;
+
+    if (!eina_strbuf_append(buf, PACKAGE_PKGDATA_DIR "/images/ciphers.png"))
+        goto free_buf;
+
+    ic.buf = buf;
     ic.offset = cipher_offset;
     ic.data = ""
     ic.w = cipher_size[0];
@@ -155,7 +162,11 @@ void icon_init(Evas_Object *win, int tile_sz)
 
     cipher_bmp = icon_create(win, &ic);
 
-    ic.filename = "C:/Documents/msys2_2/home/vincent.torri/gitroot/elimine/data/images/WinmineXP.png";
+    eina_strbuf_reset(buf);
+    if (!eina_strbuf_append(buf, PACKAGE_PKGDATA_DIR "/images/tiles.png"))
+        goto free_buf;
+
+    ic.buf = buf;
     ic.offset = tile_offset;
     ic.data = ""
     ic.w = tile_size[0];
@@ -164,6 +175,12 @@ void icon_init(Evas_Object *win, int tile_sz)
     ic.tile_sz = tile_sz;
 
     tile_bmp = icon_create(win, &ic);
+
+    ret = EINA_TRUE;
+
+  free_buf:
+    eina_strbuf_free(buf);
+    return ret;
 }
 
 void cipher_size_get(int *w, int *h)
diff --git a/src/bin/icon.h b/src/bin/icon.h
index b9f7530..f765414 100644
--- a/src/bin/icon.h
+++ b/src/bin/icon.h
@@ -41,7 +41,7 @@ typedef enum
     TILE_COUNT
 } Tile_Type;
 
-void icon_init(Evas_Object *win, int tile_sz);
+Eina_Bool icon_init(Evas_Object *win, int tile_sz);
 
 void cipher_size_get(int *w, int *h);
 
diff --git a/src/bin/meson.build b/src/bin/meson.build
index 22e1894..685dad6 100644
--- a/src/bin/meson.build
+++ b/src/bin/meson.build
@@ -5,5 +5,6 @@
 elimine = executable('elimine',
   files(['elimine.c', 'icon.c']),
   dependencies        : [ elm_deps ],
+  include_directories : config_dir,
   install             : true
-)
\ No newline at end of file
+)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to