| { |
| "module": "imageformats", |
| "depends": [ |
| "gui" |
| ], |
| "condition": "module.gui", |
| |
| "commandline": { |
| "options": { |
| "jasper": { "type": "boolean" }, |
| "mng": { "type": "boolean" }, |
| "tiff": { "type": "enum", "values": [ "no", "qt", "system" ] }, |
| "webp": { "type": "enum", "values": [ "no", "qt", "system" ] } |
| } |
| }, |
| |
| "libraries": { |
| "jasper": { |
| "headers": "jasper/jasper.h", |
| "test": { |
| "include": [ |
| "string.h", |
| "jasper/jasper.h" |
| ], |
| "head": [ |
| "constexpr bool streq(const char *a, const char *b)", |
| "{", |
| " return a[0] == b[0] && (!a[0] || streq(a + 1, b + 1));", |
| "}" |
| ], |
| "main": [ |
| "static_assert(!streq(JAS_VERSION, \"1.900.0\"),", |
| " \"JasPer version 1.900.0 is considered broken.\");" |
| ] |
| }, |
| "sources": [ |
| { "type": "pkgConfig", "args": "jasper" }, |
| { "libs": "-ljasper" } |
| ] |
| }, |
| "mng": { |
| "headers": "libmng.h", |
| "test": { |
| "include": [ |
| "stdio.h", |
| "libmng.h" |
| ], |
| "main": [ |
| "mng_handle hMNG;", |
| "mng_cleanup(&hMNG);", |
| "#if defined(MNG_VERSION_MAJOR)", |
| "#if MNG_VERSION_MAJOR < 1 || (MNG_VERSION_MAJOR == 1 && MNG_VERSION_MINOR == 0 && MNG_VERSION_RELEASE < 9)", |
| "#error System libmng version is less than 1.0.9", |
| "#endif", |
| "#endif" |
| ] |
| }, |
| "sources": [ |
| { "type": "pkgConfig", "args": "libmng" }, |
| { "libs": "-lmng" } |
| ] |
| }, |
| "tiff": { |
| "headers": "tiffio.h", |
| "test": { |
| "main": [ |
| "#if !defined(TIFF_VERSION) && defined(TIFF_VERSION_CLASSIC)", |
| "// libtiff 4.0 splits it into TIFF_VERSION_CLASSIC and TIFF_VERSION_BIG", |
| "# define TIFF_VERSION TIFF_VERSION_CLASSIC", |
| "#endif", |
| |
| "#if !defined(TIFF_VERSION)", |
| "# error \"Required libtiff not found\"", |
| "#elif TIFF_VERSION < 42", |
| "# error \"unsupported tiff version\"", |
| "#endif", |
| |
| "tdata_t buffer = _TIFFmalloc(128);", |
| "_TIFFfree(buffer);", |
| |
| "// some libtiff implementations where TIFF_VERSION >= 42 do not", |
| "// have TIFFReadRGBAImageOriented(), so let's check for it", |
| "TIFFReadRGBAImageOriented(0, 0, 0, 0, 0, 0);" |
| ] |
| }, |
| "sources": [ |
| { "type": "pkgConfig", "args": "libtiff-4" }, |
| { "libs": "-ltiff" } |
| ] |
| }, |
| "webp": { |
| "headers": [ |
| "webp/decode.h", |
| "webp/encode.h", |
| "webp/demux.h", |
| "webp/mux.h" |
| ], |
| "test": { |
| "main": [ |
| "#if WEBP_ABI_IS_INCOMPATIBLE(WEBP_DECODER_ABI_VERSION, 0x0203) || WEBP_ABI_IS_INCOMPATIBLE(WEBP_ENCODER_ABI_VERSION, 0x0202)", |
| "#error \"Incompatible libwebp version\"", |
| "#endif", |
| |
| "WebPDecoderConfig config;", |
| "WebPDecBuffer *output_buffer = &config.output;", |
| "WebPBitstreamFeatures *bitstream = &config.input;", |
| "WebPPicture picture;", |
| "picture.use_argb = 0;", |
| "WebPConfig config2;", |
| "config2.lossless = 0;", |
| "WebPData data = {};", |
| "WebPDemuxer *demuxer = WebPDemux(&data);", |
| "WebPIterator iter;", |
| "iter.frame_num = 0;" |
| ] |
| }, |
| "sources": [ |
| { "type": "pkgConfig", "args": "libwebp libwebpmux libwebpdemux" }, |
| { "libs": "-lwebp -lwebpdemux -lwebpmux" } |
| ] |
| } |
| }, |
| |
| "features": { |
| "jasper": { |
| "label": "JasPer", |
| "disable": "input.jasper == 'no'", |
| "condition": "features.imageformatplugin && libs.jasper", |
| "output": [ |
| "privateFeature", |
| { "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_JASPER" } |
| ] |
| }, |
| "mng": { |
| "label": "MNG", |
| "disable": "input.mng == 'no'", |
| "condition": "libs.mng", |
| "output": [ "privateFeature" ] |
| }, |
| "tiff": { |
| "label": "TIFF", |
| "disable": "input.tiff == 'no'", |
| "condition": "features.imageformatplugin && !(config.winrt && arch.i386)", |
| "output": [ |
| "privateFeature" |
| ] |
| }, |
| "system-tiff": { |
| "label": " Using system libtiff", |
| "disable": "input.tiff == 'qt'", |
| "enable": "input.tiff == 'system'", |
| "condition": "features.tiff && libs.tiff", |
| "output": [ "privateFeature" ] |
| }, |
| "webp": { |
| "label": "WEBP", |
| "disable": "input.webp == 'no'", |
| "condition": "features.imageformatplugin && !(config.winrt && arch.arm)", |
| "output": [ |
| "privateFeature" |
| ] |
| }, |
| "system-webp": { |
| "label": " Using system libwebp", |
| "disable": "input.webp == 'qt'", |
| "enable": "input.webp == 'system'", |
| "condition": "features.webp && libs.webp", |
| "output": [ "privateFeature" ] |
| } |
| }, |
| |
| "summary": [ |
| { |
| "section": "Further Image Formats", |
| "entries": [ |
| "jasper", |
| "mng", |
| "tiff", "system-tiff", |
| "webp", "system-webp" |
| ] |
| } |
| ] |
| } |