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.