diff --git a/buildfiles/ev_helpers.c b/buildfiles/ev_helpers.c new file mode 100644 index 0000000..b137444 --- /dev/null +++ b/buildfiles/ev_helpers.c @@ -0,0 +1,2 @@ +#define EV_HELPERS_IMPLEMENTATION +#include "../ev_helpers.h" diff --git a/ev_helpers.h b/ev_helpers.h new file mode 100644 index 0000000..05eebbc --- /dev/null +++ b/ev_helpers.h @@ -0,0 +1,47 @@ +/*! + * \file ev_helpers.h + */ +#ifndef EV_HELPERS_HEADER +#define EV_HELPERS_HEADER + +#include "ev_macros.h" +#include "ev_str.h" +#if defined(EV_HELPERS_SHARED) +# if defined (EV_HELPERS_IMPL) +# define EV_HELPERS_API EV_EXPORT +# else +# define EV_HELPERS_API EV_IMPORT +# endif +#else +# define EV_HELPERS_API +#endif + +EV_HELPERS_API evstring +evstring_readFile( + evstring filePath); + +#ifdef EV_HELPERS_IMPLEMENTATION +#undef EV_HELPERS_IMPLEMENTATION + +evstring +evstring_readFile( + evstring filePath) +{ + FILE* f = fopen(filePath, "r"); + if(f == NULL) return EV_INVALID(evstring); + + fseek(f, 0, SEEK_END); + u32 buflen = ftell(f); + fseek(f, 0, SEEK_SET); + + evstring res = evstring_new(""); + evstring_setLength(&res, buflen); + fread(res, 1, buflen, f); + fclose(f); + + return res; +} + +#endif + +#endif diff --git a/meson.build b/meson.build index b234e80..c42c9cb 100644 --- a/meson.build +++ b/meson.build @@ -23,14 +23,17 @@ endif # All other targets should follow the same template str_lib = static_library('ev_str', files('buildfiles/ev_str.c'), c_args: evh_c_args) vec_lib = static_library('ev_vec', files('buildfiles/ev_vec.c'), c_args: evh_c_args) +helpers_lib = static_library('ev_helpers', files('buildfiles/ev_helpers.c'), c_args: evh_c_args) str_dep = declare_dependency(link_with: str_lib, include_directories: headers_include) vec_dep = declare_dependency(link_with: vec_lib, include_directories: headers_include) +helpers_dep = declare_dependency(link_with: helpers_lib, include_directories: headers_include) headers_dep = declare_dependency( dependencies: [ str_dep, vec_dep, + helpers_dep, ] ) @@ -41,5 +44,6 @@ test('evstr', str_test) if meson.version().version_compare('>= 0.54.0') meson.override_dependency('ev_vec', vec_dep) meson.override_dependency('ev_str', str_dep) + meson.override_dependency('ev_helpers', helpers_dep) meson.override_dependency('evol-headers', headers_dep) endif