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