diff options
Diffstat (limited to 'meson/manual tests/2 multiwrap')
-rw-r--r-- | meson/manual tests/2 multiwrap/meson.build | 12 | ||||
-rw-r--r-- | meson/manual tests/2 multiwrap/prog.c | 66 | ||||
-rw-r--r-- | meson/manual tests/2 multiwrap/subprojects/libpng.wrap | 10 | ||||
-rw-r--r-- | meson/manual tests/2 multiwrap/subprojects/lua.wrap | 11 | ||||
-rw-r--r-- | meson/manual tests/2 multiwrap/subprojects/zlib.wrap | 10 |
5 files changed, 109 insertions, 0 deletions
diff --git a/meson/manual tests/2 multiwrap/meson.build b/meson/manual tests/2 multiwrap/meson.build new file mode 100644 index 000000000..a4c42f468 --- /dev/null +++ b/meson/manual tests/2 multiwrap/meson.build @@ -0,0 +1,12 @@ +project('multiwrap', 'c', + default_options : 'c_std=c99') + +# Using multiple downloaded projects for great justice. + +cc = meson.get_compiler('c') + +luadep = dependency('lua', fallback : ['lua', 'lua_dep']) +pngdep = dependency('libpng', fallback : ['libpng', 'png_dep']) + +executable('prog', 'prog.c', + dependencies : [pngdep, luadep]) diff --git a/meson/manual tests/2 multiwrap/prog.c b/meson/manual tests/2 multiwrap/prog.c new file mode 100644 index 000000000..dd0349e2d --- /dev/null +++ b/meson/manual tests/2 multiwrap/prog.c @@ -0,0 +1,66 @@ +#include<lua.h> +#include<stdio.h> +#include<stdlib.h> +#include<png.h> +#include<string.h> +#if !defined(_MSC_VER) +#include<unistd.h> +#endif + +static void *l_alloc (void *ud, void *ptr, size_t osize, + size_t nsize) { + (void)ud; + (void)osize; + if (nsize == 0) { + free(ptr); + return NULL; + } else { + return realloc(ptr, nsize); + } +} + +void open_image(const char *fname) { + png_image image; + + memset(&image, 0, (sizeof image)); + image.version = PNG_IMAGE_VERSION; + + if(png_image_begin_read_from_file(&image, fname) != 0) { + png_bytep buffer; + + image.format = PNG_FORMAT_RGBA; + buffer = malloc(PNG_IMAGE_SIZE(image)); + + if(png_image_finish_read(&image, NULL, buffer, 0, NULL) != 0) { + printf("Image %s read failed: %s\n", fname, image.message); + } +// png_free_image(&image); + free(buffer); + } else { + printf("Image %s open failed: %s", fname, image.message); + } +} + +int printer(lua_State *l) { + if(!lua_isstring(l, 1)) { + fprintf(stderr, "Incorrect call.\n"); + return 0; + } + open_image(lua_tostring(l, 1)); + return 0; +} + + +int main(int argc, char **argv) { + lua_State *l = lua_newstate(l_alloc, NULL); + if(!l) { + printf("Lua state allocation failed.\n"); + return 1; + } + lua_register(l, "printer", printer); + lua_getglobal(l, "printer"); + lua_pushliteral(l, "foobar.png"); + lua_call(l, 1, 0); + lua_close(l); + return 0; +} diff --git a/meson/manual tests/2 multiwrap/subprojects/libpng.wrap b/meson/manual tests/2 multiwrap/subprojects/libpng.wrap new file mode 100644 index 000000000..283775c1e --- /dev/null +++ b/meson/manual tests/2 multiwrap/subprojects/libpng.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = libpng-1.6.34 + +source_url = ftp://ftp-osl.osuosl.org/pub/libpng/src/libpng16/libpng-1.6.34.tar.xz +source_filename = libpng-1.6.34.tar.xz +source_hash = 2f1e960d92ce3b3abd03d06dfec9637dfbd22febf107a536b44f7a47c60659f6 + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/libpng/1.6.34/1/get_zip +patch_filename = libpng-1.6.34-1-wrap.zip +patch_hash = 2123806eba8180c164e33a210f2892bbeb2473b69e56aecc786574e9221e6f20 diff --git a/meson/manual tests/2 multiwrap/subprojects/lua.wrap b/meson/manual tests/2 multiwrap/subprojects/lua.wrap new file mode 100644 index 000000000..c1a179a5d --- /dev/null +++ b/meson/manual tests/2 multiwrap/subprojects/lua.wrap @@ -0,0 +1,11 @@ +[wrap-file] +directory = lua-5.3.0 + +source_url = http://www.lua.org/ftp/lua-5.3.0.tar.gz +source_filename = lua-5.3.0.tar.gz +source_hash = ae4a5eb2d660515eb191bfe3e061f2b8ffe94dce73d32cfd0de090ddcc0ddb01 + + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/lua/5.3.0/5/get_zip +patch_filename = lua-5.3.0-5-wrap.zip +patch_hash = 439038309a0700adfb67d764b3fe935ed8601b31f819fc369e1438c6e79334dd diff --git a/meson/manual tests/2 multiwrap/subprojects/zlib.wrap b/meson/manual tests/2 multiwrap/subprojects/zlib.wrap new file mode 100644 index 000000000..6d5896f79 --- /dev/null +++ b/meson/manual tests/2 multiwrap/subprojects/zlib.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = zlib-1.2.8 + +source_url = http://zlib.net/fossils/zlib-1.2.8.tar.gz +source_filename = zlib-1.2.8.tar.gz +source_hash = 36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/zlib/1.2.8/8/get_zip +patch_filename = zlib-1.2.8-8-wrap.zip +patch_hash = 17c52a0e0c59ce926d3959005d5cd8178c6c7e2c9a4a1304279a8320c955ac60 |