blob: 4718398233cb2e38ca6c7cd24a2309fa8d1c6c4c [file] [log] [blame]
{
"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"
]
}
]
}