{
    "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"
            ]
        }
    ]
}
