{
    "module": "qml",
    "depends": [
        "core-private",
        "network-private"
    ],

    "commandline": {
        "options": {
            "qml-network": "boolean",
            "qml-debug": "boolean"
        }
    },

    "tests": {
        "cxx14_make_unique": {
            "label": "C++14 make_unique()",
            "type": "compile",
            "test": {
                "include": "memory",
                "main": [
                    "std::unique_ptr<int> ptr = std::make_unique<int>();"
                ],
                "qmake": "CONFIG += c++11"
            }
        },
        "pointer_32bit": {
            "label": "32bit pointers",
            "type": "compile",
            "test": {
                "main": "static_assert(sizeof(void *) == 4, \"fail\");"
            }
        },
        "pointer_64bit": {
            "label": "64bit pointers",
            "type": "compile",
            "test": {
                "main": "static_assert(sizeof(void *) == 8, \"fail\");"
            }
        },
        "arm_thumb": {
            "label": "THUMB mode on ARM",
            "type": "compile",
            "test": {
                "main": [
                    "#if defined(thumb2) || defined(__thumb2__)",
                    "#    define THUMB_OK",
                    "#elif (defined(__thumb) || defined(__thumb__)) && __TARGET_ARCH_THUMB-0 == 4",
                    "#    define THUMB_OK",
                    "#elif defined(__ARM_ARCH_ISA_THUMB) && __ARM_ARCH_ISA_THUMB == 2",
                    "// clang 3.5 and later will set this if the core supports the Thumb-2 ISA.",
                    "#    define THUMB_OK",
                    "#else",
                    "#    error \"fail\"",
                    "#endif"
                ]
            }
        },
        "arm_fp": {
            "label": "Sufficiently recent FPU on ARM",
            "type": "compile",
            "test": {
                "main": [
                    "// if !defined(__ARM_FP) we might be on MSVC or we might have a device",
                    "// without an FPU.",
                    "// TODO: The latter case is not supported, but the test still succeeds.",
                    "#if defined(__ARM_FP) && (__ARM_FP <= 0x04)",
                    "#    error \"fail\"",
                    "#endif"
                ]
            }
        },
        "qml-python": {
            "label": "python",
            "type": "detectPython",
            "log": "location"
        }
    },

    "features": {
        "cxx14_make_unique": {
            "label": "C++14 make_unique",
            "condition": "features.c++14 || tests.cxx14_make_unique",
            "output": [ "privateFeature" ]
        },
        "qml-network": {
            "label": "QML network support",
            "purpose": "Provides network transparency.",
            "section": "QML",
            "condition": "features.network",
            "output": [ "publicFeature" ]
        },
        "qml-jit": {
            "label": "QML just-in-time compiler",
            "purpose": "Provides a JIT for QML and JavaScript",
            "section": "QML",
            "condition": [
                "   (arch.i386   && tests.pointer_32bit && features.sse2)
                 || (arch.x86_64 && tests.pointer_64bit && features.sse2)
                 || (arch.arm    && tests.pointer_32bit && tests.arm_fp && tests.arm_thumb
                     && (config.linux || config.ios || config.tvos || config.qnx))
                 || (arch.arm64  && tests.pointer_64bit && tests.arm_fp
                     && (config.linux || config.ios || config.tvos || config.qnx || config.integrity))"
            ],
            "output": [ "privateFeature" ],
            "autoDetect": "!config.ios && !config.tvos",
            "comment": "On arm and arm64 we need a specialization of cacheFlush() for each OS to be
                        enabeled. Therefore the config white list.
                        Also Mind that e.g. x86_32 has arch.x86_64 but 32bit pointers. Therefore
                        the checks for architecture and pointer size.
                        Finally, ios and tvos can technically use the JIT but Apple does not allow
                        it. Therefore, it's disabled by default."
        },
        "qml-debug": {
            "label": "QML debugging and profiling support",
            "purpose": "Provides infrastructure and plugins for debugging and profiling.",
            "section": "QML",
            "output": [ "publicFeature" ]
        },
        "qml-profiler": {
            "label": "Command line QML Profiler",
            "purpose": "Supports retrieving QML tracing data from an application.",
            "section": "QML",
            "condition": [
                "features.commandlineparser",
                "features.qml-debug",
                "features.qml-network && features.localserver",
                "features.xmlstreamwriter"
            ],
            "output": [ "privateFeature" ]
        },
        "qml-preview": {
            "label": "Command line QML Preview tool",
            "purpose": "Updates QML documents in your application live as you change them on disk",
            "section": "QML",
            "condition": [
                "features.commandlineparser",
                "features.filesystemwatcher",
                "features.qml-network && features.localserver",
                "features.process",
                "features.qml-debug"
            ],
            "output": [ "privateFeature" ]
        },
        "qml-devtools": {
            "label": "QML Development Tools",
            "purpose": "Provides the QmlDevtools library and various utilities.",
            "section": "QML",
            "output": [ "privateFeature" ]
        },
        "qml-sequence-object": {
            "label": "QML sequence object",
            "purpose": "Supports mapping sequence types into QML.",
            "section": "QML",
            "output": [ "privateFeature" ]
        },
        "qml-xml-http-request": {
            "label": "QML XML http request",
            "purpose": "Provides support for sending XML http requests.",
            "section": "QML",
            "condition": [
                "features.xmlstreamreader",
                "features.qml-network"
            ],
            "output": [ "privateFeature" ]
        },
        "qml-locale": {
            "label": "QML Locale",
            "purpose": "Provides support for locales in QML.",
            "section": "QML",
            "output": [ "privateFeature" ]
        },
        "qml-animation": {
            "label": "QML Animations",
            "purpose": "Provides support for animations and timers in QML.",
            "section": "QML",
            "condition": "features.animation",
            "output": [ "privateFeature" ]
        },
        "qml-worker-script": {
            "label": "QML WorkerScript",
            "purpose": "Enables the use of threads in QML.",
            "section": "QML",
            "condition": "features.thread",
            "output": [ "privateFeature" ]
        },
        "qml-itemmodel": {
            "label": "QML Item Model",
            "purpose": "Provides the item model for item views in QML",
            "section": "QML",
            "condition": "features.itemmodel",
            "output": [ "privateFeature" ]
        },
        "qml-python": {
            "label": "python",
            "condition": "tests.qml-python",
            "output": [
                "privateFeature",
                { "type": "varAssign", "name": "QMAKE_PYTHON", "value": "tests.qml-python.location" }
            ]
        }
    },

    "report": [
        {
            "type": "error",
            "condition": "!features.qml-python",
            "message": "Python is required to build QtQml."
        }
    ],

    "summary": [
        {
            "section": "Qt QML",
            "entries": [
                "qml-network",
                "qml-debug",
                "qml-jit",
                "qml-sequence-object",
                "qml-xml-http-request",
                "qml-locale"
            ]
        }
    ]
}
