blob: 62d78f8dc6b635120d1293ead9ca9973f9b2f919 [file] [log] [blame]
{
"files": {
"qconfigSource": "src/corelib/global/qconfig.cpp",
"publicHeader": "src/corelib/global/qconfig.h",
"privateHeader": "src/corelib/global/qconfig_p.h",
"publicPro": "mkspecs/qconfig.pri",
"privatePro": "mkspecs/qmodule.pri"
},
"subconfigs": [
"src/corelib",
"src/network",
"src/gui",
"src/sql",
"src/xml",
"src/widgets",
"src/printsupport",
"src/plugins/sqldrivers",
"src/testlib"
],
"commandline": {
"assignments": {
"DBUS_HOST_PATH": "host_dbus.prefix",
"DBUS_PATH": "dbus.prefix"
},
"custom": "qmakeArgs",
"options": {
"prefix": "string",
"hostprefix": "optionalString",
"extprefix": "string",
"archdatadir": "string",
"bindir": "string",
"datadir": "string",
"docdir": "string",
"examplesdir": "string",
"external-hostbindir": "string",
"headerdir": "string",
"hostbindir": "string",
"hostdatadir": "string",
"hostlibdir": "string",
"importdir": "string",
"libdir": "string",
"libexecdir": "string",
"plugindir": "string",
"qmldir": "string",
"settingsdir": { "type": "string", "name": "sysconfdir" },
"sysconfdir": "string",
"testsdir": "string",
"translationdir": "string",
"android-arch": "string",
"android-abis": "string",
"android-ndk": "string",
"android-ndk-host": "string",
"android-ndk-platform": "string",
"android-sdk": "string",
"android-style-assets": "boolean",
"appstore-compliant": "boolean",
"avx": "boolean",
"avx2": "boolean",
"avx512": { "type": "boolean", "name": "avx512f" },
"c++std": "cxxstd",
"ccache": { "type": "boolean", "name": "ccache" },
"commercial": "void",
"compile-examples": { "type": "boolean", "name": "compile_examples" },
"confirm-license": "void",
"coverage": "coverage",
"dbus": { "type": "optionalString", "values": [ "no", "yes", "linked", "runtime" ] },
"dbus-linked": { "type": "void", "name": "dbus", "value": "linked" },
"dbus-runtime": { "type": "void", "name": "dbus", "value": "runtime" },
"debug": "void",
"debug-and-release": { "type": "boolean", "name": "debug_and_release" },
"developer-build": "void",
"device": "string",
"device-option": "addString",
"f16c": "boolean",
"force-asserts": { "type": "boolean", "name": "force_asserts" },
"force-debug-info": { "type": "boolean", "name": "force_debug_info" },
"force-pkg-config": { "type": "void", "name": "pkg-config" },
"framework": "boolean",
"gc-binaries": { "type": "boolean", "name": "gc_binaries" },
"gdb-index": { "type": "boolean", "name": "enable_gdb_index" },
"gcc-sysroot": "boolean",
"gcov": "boolean",
"gnumake": { "type": "boolean", "name": "GNUmake" },
"gui": "boolean",
"headersclean": "boolean",
"incredibuild-xge": { "type": "boolean", "name": "incredibuild_xge" },
"libudev": "boolean",
"linker": { "type": "optionalString", "values": [ "bfd", "gold", "lld" ] },
"ltcg": "boolean",
"make": { "type": "addString", "values": [ "examples", "libs", "tests", "tools" ] },
"make-tool": "string",
"mips_dsp": "boolean",
"mips_dspr2": "boolean",
"mp": { "type": "boolean", "name": "msvc_mp" },
"nomake": { "type": "addString", "values": [ "examples", "tests", "tools" ] },
"opensource": { "type": "void", "name": "commercial", "value": "no" },
"optimize-debug": { "type": "boolean", "name": "optimize_debug" },
"optimize-size": { "type": "boolean", "name": "optimize_size" },
"optimized-qmake": { "type": "boolean", "name": "release_tools" },
"optimized-tools": { "type": "boolean", "name": "release_tools" },
"pch": { "type": "boolean", "name": "precompile_header" },
"pkg-config": "boolean",
"platform": "string",
"plugin-manifests": "boolean",
"profile": "boolean",
"qreal": "string",
"qtlibinfix": { "type": "string", "name": "qt_libinfix" },
"qtlibinfix-plugins": { "type": "boolean", "name": "qt_libinfix_plugins" },
"qtnamespace": { "type": "string", "name": "qt_namespace" },
"reduce-exports": { "type": "boolean", "name": "reduce_exports" },
"reduce-relocations": { "type": "boolean", "name": "reduce_relocations" },
"release": { "type": "enum", "name": "debug", "values": { "yes": "no", "no": "yes" } },
"rpath": "boolean",
"sanitize": "sanitize",
"sdk": "string",
"separate-debug-info": { "type": "boolean", "name": "separate_debug_info" },
"shared": "boolean",
"silent": "void",
"qdbus": { "type": "boolean", "name": "dbus" },
"sse2": "boolean",
"sse3": "boolean",
"sse4.1": { "type": "boolean", "name": "sse4_1" },
"sse4.2": { "type": "boolean", "name": "sse4_2" },
"ssse3": "boolean",
"static": { "type": "enum", "name": "shared", "values": { "yes": "no", "no": "yes" } },
"static-runtime": { "type": "boolean", "name": "static_runtime" },
"strip": "boolean",
"syncqt": "boolean",
"sysroot": "string",
"testcocoon": "boolean",
"use-gold-linker": { "type": "boolean", "name": "use_gold_linker_alias" },
"warnings-are-errors": { "type": "boolean", "name": "warnings_are_errors" },
"Werror": { "type": "boolean", "name": "warnings_are_errors" },
"widgets": "boolean",
"xplatform": "string",
"zlib": { "type": "enum", "name": "system-zlib", "values": { "system": "yes", "qt": "no" } },
"zstd": "boolean"
},
"prefix": {
"D": "defines",
"F": "fpaths",
"I": "includes",
"L": "lpaths",
"R": "rpaths",
"W": "wflags"
}
},
"libraries": {
"zlib": {
"label": "zlib",
"test": {
"main": [
"z_streamp stream = 0;",
"(void) zlibVersion();",
"(void) compress2(0, 0, 0, 0, 1); // compress2 was added in zlib version 1.0.8"
]
},
"headers": "zlib.h",
"sources": [
{ "libs": "-lzdll", "condition": "config.msvc" },
{ "libs": "-lzlib", "condition": "config.msvc" },
{ "libs": "-lz", "condition": "!config.msvc" },
{ "libs": "-s USE_ZLIB=1", "condition": "config.wasm" }
]
},
"zstd": {
"label": "Zstandard",
"test": {
"include": "zstd.h",
"main": [
"(void) ZSTD_compress(NULL, 0, NULL, 0, 1);",
"unsigned long long n = ZSTD_getFrameContentSize(NULL, 0);",
"(void) ZSTD_decompress(NULL, 0, NULL, n);"
]
},
"sources": [
{ "type": "pkgConfig", "args": "libzstd >= 1.3" },
"-lzstd"
]
},
"dbus": {
"label": "D-Bus >= 1.2",
"test": {
"main": "(void) dbus_bus_get_private(DBUS_BUS_SYSTEM, (DBusError *)NULL);"
},
"headers": "dbus/dbus.h",
"sources": [
{ "type": "pkgConfig", "args": "dbus-1 >= 1.2" },
{
"libs": "",
"builds": {
"debug": "-ldbus-1d",
"release": "-ldbus-1"
},
"condition": "config.win32"
},
{ "libs": "-ldbus-1", "condition": "!config.win32" }
]
},
"host_dbus": {
"label": "D-Bus >= 1.2 (host)",
"export": "",
"sources": [
{ "type": "pkgConfig", "host": true, "args": "dbus-1 >= 1.2" },
{ "libs": "", "comment": "placeholder for DBUS_HOST_PATH" }
]
},
"libudev": {
"label": "udev",
"test": {
"main": "udev_unref(udev_new());"
},
"headers": "libudev.h",
"sources": [
{ "type": "pkgConfig", "args": "libudev" },
"-ludev"
]
},
"libdl": {
"label": "dlopen()",
"test": {
"main": [
"dlclose(dlopen(0, 0));",
"dlsym(RTLD_DEFAULT, 0);",
"dlerror();"
]
},
"headers": "dlfcn.h",
"sources": [
"",
"-ldl"
]
}
},
"testTypeDependencies": {
"linkerSupportsFlag": [ "use_bfd_linker", "use_gold_linker", "use_lld_linker" ],
"verifySpec": [ "shared", "use_bfd_linker", "use_gold_linker", "use_lld_linker", "compiler-flags", "qmakeargs", "commit" ],
"compile": [ "verifyspec" ],
"detectPkgConfig": [ "cross_compile", "machineTuple" ],
"library": [ "pkg-config", "compiler-flags" ],
"getPkgConfigVariable": [ "pkg-config" ]
},
"testTypeAliases": {
"compile": [ "library", "architecture", "x86Simd", "x86SimdAlways" ]
},
"tests": {
"machineTuple": {
"label": "machine tuple",
"type": "machineTuple"
},
"verifyspec": {
"label": "valid makespec",
"type": "verifySpec",
"test": "verifyspec"
},
"architecture": {
"label": "target architecture",
"type": "architecture",
"test": "arch",
"output": "arch",
"log": "arch"
},
"host_architecture": {
"label": "host architecture",
"type": "architecture",
"test": "arch",
"output": "arch_host",
"host": true,
"pro": "arch_host.pro",
"log": "arch"
},
"GNUmake": {
"label": "GNU make",
"type": "gnumake"
},
"pkg-config": {
"label": "pkg-config",
"type": "detectPkgConfig"
},
"stl": {
"label": "STL compatibility",
"type": "compile",
"test": "stl"
},
"c99": {
"label": "C99 support",
"type": "compile",
"test": {
"head": [
"#if __STDC_VERSION__ >= 199901L",
"// Compiler claims to support C99, trust it",
"#else",
"# error __STDC_VERSION__ must be >= 199901L",
"#endif"
],
"lang": "c",
"qmake": "CONFIG += c99"
}
},
"c11": {
"label": "C11 support",
"type": "compile",
"test": {
"head": [
"#if __STDC_VERSION__ >= 201112L",
"// Compiler claims to support C11, trust it",
"#else",
"# error __STDC_VERSION__ must be >= 201112L",
"#endif"
],
"lang": "c",
"qmake": "CONFIG += c11"
}
},
"c++14": {
"label": "C++14 support",
"type": "compile",
"test": {
"head": [
"#if __cplusplus > 201103L",
"// Compiler claims to support C++14, trust it",
"#else",
"# error __cplusplus must be > 201103L (the value of C++11)",
"#endif"
],
"qmake": "CONFIG += c++11 c++14"
}
},
"c++1z": {
"label": "C++17 support",
"type": "compile",
"test": {
"head": [
"#if __cplusplus > 201402L",
"// Compiler claims to support experimental C++1z, trust it",
"#else",
"# error __cplusplus must be > 201402L (the value for C++14)",
"#endif",
"#include <map> // https://bugs.llvm.org//show_bug.cgi?id=33117",
"#include <variant>"
],
"main": [
"std::variant<int> v(42);",
"int i = std::get<int>(v);",
"std::visit([](const auto &) { return 1; }, v);"
],
"qmake": "CONFIG += c++11 c++14 c++1z"
}
},
"c++2a": {
"label": "C++2a support",
"type": "compile",
"test": {
"head": [
"#if __cplusplus > 201703L",
"// Compiler claims to support experimental C++2a, trust it",
"#else",
"# error __cplusplus must be > 201703L (the value for C++17)",
"#endif"
],
"qmake": "CONFIG += c++11 c++14 c++1z c++2a"
}
},
"precompile_header": {
"label": "precompiled header support",
"type": "compile",
"test": {
"files": {
"header.h": "#define HEADER_H"
},
"tail": [
"#ifndef HEADER_H",
"#error no go",
"#endif"
],
"qmake": [
"CONFIG += precompile_header",
"PRECOMPILED_DIR = .pch",
"PRECOMPILED_HEADER = header.h"
]
}
},
"use_bfd_linker": {
"label": "bfd linker",
"type": "compilerSupportsFlag",
"flag": "-fuse-ld=bfd"
},
"use_gold_linker": {
"label": "gold linker",
"type": "compilerSupportsFlag",
"flag": "-fuse-ld=gold"
},
"use_lld_linker" : {
"label": "lld linker",
"type": "compilerSupportsFlag",
"flag": "-fuse-ld=lld"
},
"optimize_debug": {
"label": "-Og support",
"type": "compilerSupportsFlag",
"flag": "-Og"
},
"enable_new_dtags": {
"label": "new dtags support",
"type": "linkerSupportsFlag",
"flag": "--enable-new-dtags"
},
"gdb_index": {
"label": "gdb index support",
"type": "linkerSupportsFlag",
"flag": "--gdb-index"
},
"reduce_exports": {
"label": "symbol visibility support",
"type": "compile",
"test": {
"head": [
"#if defined(__GNUC__)",
"__attribute((visibility(\"default\")))",
"#elif defined(__SUNPRO_CC)",
"__global",
"#else",
"# error GCC4+ or SunStudio 8+ are required to support ELF visibility",
"#endif"
],
"qmake": [
"TEMPLATE = lib",
"CONFIG += dll hide_symbols",
"isEmpty(QMAKE_CFLAGS_HIDESYMS): error(\"Nope\")"
]
}
},
"reduce_relocations": {
"label": "-Bsymbolic-functions support",
"type": "compile",
"test": {
"head": [
"#if !(defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__) || defined(__amd64))",
"# error Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129).",
"#endif"
],
"qmake": [
"TEMPLATE = lib",
"CONFIG += dll bsymbolic_functions",
"isEmpty(QMAKE_LFLAGS_BSYMBOLIC_FUNC): error(\"Nope\")"
]
}
},
"build_parts": {
"type": "buildParts"
},
"separate_debug_info": {
"label": "separate debug information support",
"type": "compile",
"test": {
"qmake": [
"TARGET = objcopytest",
"load(resolve_target)",
"QMAKE_POST_LINK += \\",
" $$QMAKE_OBJCOPY --only-keep-debug $$QMAKE_RESOLVED_TARGET objcopytest.debug && \\",
" $$QMAKE_OBJCOPY --strip-debug $$QMAKE_RESOLVED_TARGET && \\",
" $$QMAKE_OBJCOPY --add-gnu-debuglink=objcopytest.debug $$QMAKE_RESOLVED_TARGET"
]
}
},
"gc_binaries": {
"label": "support for split sections and linker garbage collection",
"type": "compile",
"test": {
"qmake": [
"isEmpty(QMAKE_CFLAGS_SPLIT_SECTIONS): error(\"Nope\")",
"isEmpty(QMAKE_CXXFLAGS_SPLIT_SECTIONS): error(\"Nope\")",
"isEmpty(QMAKE_LFLAGS_GCSECTIONS): error(\"Nope\")"
]
}
},
"signaling_nan": {
"label": "Signaling NaN for doubles",
"type": "compile",
"test": {
"head": [ "#include <limits>" ],
"main": [
"using B = std::numeric_limits<double>;",
"static_assert(B::has_signaling_NaN, \"System lacks signaling NaN\");"
]
}
},
"sse2": {
"label": "SSE2 instructions",
"type": "x86Simd"
},
"sse3": {
"label": "SSE3 instructions",
"type": "x86Simd"
},
"ssse3": {
"label": "SSSE3 instructions",
"type": "x86Simd"
},
"sse4_1": {
"label": "SSE4.1 instructions",
"type": "x86Simd"
},
"sse4_2": {
"label": "SSE4.2 instructions",
"type": "x86Simd"
},
"aesni": {
"label": "AES new instructions",
"type": "x86Simd"
},
"f16c": {
"label": "F16C instructions",
"type": "x86Simd"
},
"rdrnd": {
"label": "RDRAND instruction",
"type": "x86Simd"
},
"shani": {
"label": "SHA new instructions",
"type": "x86Simd"
},
"avx": {
"label": "AVX instructions",
"type": "x86Simd"
},
"avx2": {
"label": "AVX2 instructions",
"type": "x86Simd"
},
"avx512f": {
"label": "AVX512 F instructions",
"type": "x86Simd"
},
"avx512er": {
"label": "AVX512 ER instructions",
"type": "x86Simd"
},
"avx512cd": {
"label": "AVX512 CD instructions",
"type": "x86Simd"
},
"avx512pf": {
"label": "AVX512 PF instructions",
"type": "x86Simd"
},
"avx512dq": {
"label": "AVX512 DQ instructions",
"type": "x86Simd"
},
"avx512bw": {
"label": "AVX512 BW instructions",
"type": "x86Simd"
},
"avx512vl": {
"label": "AVX512 VL instructions",
"type": "x86Simd"
},
"avx512ifma": {
"label": "AVX512 IFMA instructions",
"type": "x86Simd"
},
"avx512vbmi": {
"label": "AVX512 VBMI instructions",
"type": "x86Simd"
},
"x86SimdAlways": {
"label": "Intrinsics without -mXXX argument",
"type": "x86SimdAlways",
"test": "x86_simd"
},
"posix_fallocate": {
"label": "POSIX fallocate()",
"type": "compile",
"test": {
"include": [ "fcntl.h", "unistd.h" ],
"main": "(void) posix_fallocate(0, 0, 0);"
}
},
"alloca_stdlib_h": {
"label": "alloca() in stdlib.h",
"type": "compile",
"test": {
"include": "stdlib.h",
"main": "alloca(1);"
}
},
"alloca_h": {
"label": "alloca() in alloca.h",
"type": "compile",
"test": {
"include": "alloca.h",
"tail": [
"#ifdef __QNXNTO__",
"// extra include needed in QNX7 to define NULL for the alloca() macro",
"# include <stddef.h>",
"#endif"
],
"main": "alloca(1);"
}
},
"alloca_malloc_h": {
"label": "alloca() in malloc.h",
"type": "compile",
"test": {
"include": "malloc.h",
"main": "alloca(1);"
}
},
"stack_protector": {
"label": "stack protection",
"type": "compile",
"test": {
"head": [
"#ifdef __QNXNTO__",
"# include <sys/neutrino.h>",
"# if _NTO_VERSION < 700",
"# error stack-protector not used (by default) before QNX 7.0.0.",
"# endif",
"#endif"
],
"qmake": "QMAKE_CXXFLAGS += -fstack-protector-strong"
}
},
"incredibuild_xge": {
"label": "IncrediBuild",
"type": "files",
"files": [ "BuildConsole.exe", "xgConsole.exe" ]
},
"ccache": {
"label": "ccache",
"type": "files",
"files": [ "ccache" ]
}
},
"features": {
"prepare": {
"condition": "features.gcc-sysroot || true",
"output": [ "prepareSpec", "prepareOptions", "preparePaths", "reloadSpec" ]
},
"machineTuple": {
"condition": "config.linux && !config.android && tests.machineTuple",
"output": [ "machineTuple" ]
},
"commit": {
"condition": "features.machineTuple || true",
"output": [ "commitOptions" ]
},
"android-style-assets": {
"label": "Android Style Assets",
"condition": "config.android",
"output": [ "privateFeature" ],
"comment": "This belongs into gui, but the license check needs it here already."
},
"shared": {
"label": "Building shared libraries",
"autoDetect": "!config.uikit",
"condition": "!config.integrity && !config.wasm && !config.rtems",
"output": [
"shared",
"publicFeature",
"publicQtConfig",
"publicConfig"
]
},
"static": {
"condition": "!features.shared",
"output": [
"publicFeature",
"publicQtConfig",
"publicConfig"
]
},
"cross_compile": {
"label": "Cross compiling",
"condition": "call.crossCompile",
"output": [ "publicConfig", "privateConfig", "publicFeature", "crossCompile" ]
},
"compiler-flags": {
"output": [ "compilerFlags" ]
},
"gc_binaries": {
"condition": "!features.shared && tests.gc_binaries",
"output": [ "privateFeature" ]
},
"gcc-sysroot": {
"output": [ "gccSysroot" ],
"condition": "input.sysroot != ''"
},
"qmakeargs": {
"output": [ "qmakeArgs" ],
"condition": "input.qmakeArgs != ''"
},
"use_bfd_linker": {
"label": "bfd",
"autoDetect": "false",
"enable" : "input.linker == 'bfd'",
"disable" : "input.linker == 'gold' || input.linker == 'lld'",
"condition": "!config.win32 && !config.integrity && !config.wasm && tests.use_bfd_linker",
"output": [ "privateConfig", "useBFDLinker" ]
},
"use_gold_linker_alias": {
"autoDetect": "false",
"condition": "!config.win32 && !config.integrity && !config.wasm && tests.use_gold_linker"
},
"use_gold_linker": {
"label": "gold",
"autoDetect": "false",
"enable" : "input.linker == 'gold' || features.use_gold_linker_alias" ,
"disable" : "input.linker == 'bfd' || input.linker == 'lld'",
"condition": "!config.win32 && !config.integrity && !config.wasm && !config.rtems && tests.use_gold_linker",
"output": [ "privateConfig", "useGoldLinker" ]
},
"use_lld_linker": {
"label": "lld",
"autoDetect": "false",
"enable" : "input.linker == 'lld'",
"disable" : "input.linker == 'bfd' || input.linker == 'gold'",
"condition": "!config.win32 && !config.integrity && !config.wasm && tests.use_lld_linker",
"output": [ "privateConfig", "useLLDLinker" ]
},
"optimize_debug": {
"label": "Optimize debug build",
"autoDetect": "!features.developer-build",
"condition": "!config.msvc && !config.clang && (features.debug || features.debug_and_release) && tests.optimize_debug",
"output": [ "privateConfig" ]
},
"optimize_size": {
"label": "Optimize release build for size",
"autoDetect": false,
"condition": "!features.debug || features.debug_and_release",
"output": [ "privateConfig" ]
},
"architecture": {
"label": "Architecture",
"output": [ "architecture" ]
},
"pkg-config": {
"label": "Using pkg-config",
"autoDetect": "!config.darwin && !config.win32",
"condition": "tests.pkg-config",
"output": [
"publicFeature",
{ "type": "publicQtConfig", "negative": true },
"pkgConfig"
]
},
"verifyspec": {
"label": "Have valid makespec",
"condition": "tests.verifyspec"
},
"developer-build": {
"label": "Developer build",
"autoDetect": false,
"output": [
{ "type": "define", "name": "QT_BUILD_INTERNAL" },
{ "type": "privateFeature", "name": "private_tests" },
{ "type": "publicQtConfig", "name": "private_tests" }
]
},
"debug": {
"label": "Build for debugging",
"autoDetect": "features.developer-build || (config.win32 && !config.gcc) || config.darwin"
},
"debug_and_release": {
"label": "Compile libs in debug and release mode",
"autoDetect": "input.debug == '' && !(config.win32 && config.gcc)",
"condition": "config.darwin || config.win32",
"output": [ "publicFeature", "publicQtConfig", "debugAndRelease" ]
},
"force_debug_info": {
"label": "Add debug info in release mode",
"autoDetect": false,
"output": [ "privateConfig" ]
},
"separate_debug_info": {
"label": "Split off debug information",
"autoDetect": false,
"condition": [
"features.shared",
"features.debug || features.debug_and_release || features.force_debug_info",
"config.darwin || tests.separate_debug_info"
],
"output": [ "publicFeature", "publicQtConfig" ]
},
"release_tools": {
"label": "Compile tools in release mode",
"autoDetect": "features.debug",
"output": [ "privateFeature", "publicQtConfig" ]
},
"appstore-compliant": {
"label": "App store compliance",
"purpose": "Disables code that is not allowed in platform app stores",
"autoDetect": "config.uikit || config.android || config.winrt",
"output": [ "publicFeature" ]
},
"simulator_and_device": {
"label": "Build for both simulator and device",
"condition": "config.uikit && input.sdk == ''",
"output": [ "publicFeature", "publicQtConfig" ]
},
"build_all": {
"condition": "features.debug_and_release || features.simulator_and_device",
"output": [ "publicFeature", "publicQtConfig" ]
},
"rpath": {
"label": "Build with RPATH",
"autoDetect": "var.QMAKE_LFLAGS_RPATH != '' && features.shared",
"condition": "!config.android",
"output": [ "publicFeature", "publicQtConfig" ]
},
"rpath_dir": {
"label": "RPATH directory",
"enable": "input.rpaths != ''",
"autoDetect": false,
"output": [ { "type": "varAppend", "name": "EXTRA_RPATHS", "value": "input.rpaths" } ]
},
"force_asserts": {
"label": "Force assertions",
"autoDetect": false,
"output": [ "publicFeature" ]
},
"warnings_are_errors": {
"label": "WError",
"autoDetect": "features.developer-build",
"output": [ "privateConfig" ]
},
"headersclean": {
"label": "Check for clean headers",
"autoDetect": "features.developer-build",
"condition": "!config.wasm",
"output": [ "privateConfig" ]
},
"framework": {
"label": "Build Apple Frameworks",
"condition": "config.darwin && features.shared",
"output": [
{ "type": "define", "name": "QT_MAC_FRAMEWORK_BUILD" },
"publicFeature",
{ "type": "publicQtConfig", "name": "qt_framework"},
{ "type": "publicConfig", "name": "qt_framework"}
]
},
"largefile": {
"label": "Large file support",
"condition": "!config.android && !config.integrity && !config.winrt && !config.rtems",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_LARGEFILE_SUPPORT", "value": 64 }
]
},
"testcocoon": {
"label": "Testcocoon support",
"autoDetect": false,
"output": [ "publicConfig" ]
},
"gcov": {
"label": "gcov support",
"autoDetect": false,
"output": [ "publicConfig" ]
},
"silent": {
"label": "Silent build",
"autoDetect": false,
"output": [ "privateConfig" ]
},
"sanitize_address": {
"label": "Addresses",
"autoDetect": false,
"output": [ "publicConfig" ]
},
"sanitize_thread": {
"label": "Threads",
"autoDetect": false,
"output": [ "publicConfig" ]
},
"sanitize_memory": {
"label": "Memory",
"autoDetect": false,
"output": [ "publicConfig" ]
},
"sanitize_undefined": {
"label": "Undefined",
"autoDetect": false,
"output": [ "publicConfig" ]
},
"sanitizer": {
"label": "Sanitizers",
"condition": "features.sanitize_address || features.sanitize_thread || features.sanitize_memory || features.sanitize_undefined",
"output": [ "sanitizer", "publicConfig" ]
},
"coverage_trace_pc_guard": {
"label": "trace-pc-guard",
"autoDetect": false,
"output": [ "publicConfig" ]
},
"coverage": {
"label": "Code Coverage Instrumentation",
"condition": "features.coverage_trace_pc_guard",
"output": [ "publicConfig" ]
},
"GNUmake": {
"label": "GNU make",
"autoDetect": false,
"condition": "tests.GNUmake",
"output": [ "privateConfig" ]
},
"plugin-manifests": {
"label": "Embed manifests in plugins",
"emitIf": "config.win32",
"autoDetect": false,
"output": [ { "type": "publicConfig", "negative": true, "name": "no_plugin_manifest" } ]
},
"profile": {
"label": "GNU profiling support",
"autoDetect": false,
"output": [
{ "type": "varAppend", "name": "QMAKE_CFLAGS", "value": "'-pg'" },
{ "type": "varAppend", "name": "QMAKE_CXXFLAGS", "value": "'-pg'" },
{ "type": "varAppend", "name": "QMAKE_LFLAGS", "value": "'-pg'" }
]
},
"strip": {
"label": "Strip binaries",
"condition": "!features.profile",
"output": [ { "type": "privateConfig", "negative": true, "name": "nostrip" } ]
},
"stl": {
"label": "STL compatibility",
"condition": "tests.stl",
"output": [ "publicQtConfig" ]
},
"c++11": {
"label": "C++11",
"output": [ "publicFeature", "publicQtConfig" ]
},
"c++14": {
"label": "C++14",
"condition": "features.c++11 && tests.c++14",
"output": [ "publicFeature", "publicQtConfig" ]
},
"c++1z": {
"label": "C++17",
"condition": "features.c++14 && tests.c++1z",
"output": [ "publicFeature", "publicQtConfig" ]
},
"c++2a": {
"label": "C++2a",
"autoDetect": false,
"condition": "features.c++1z && tests.c++2a",
"output": [ "publicFeature", "publicQtConfig" ]
},
"c89": {
"label": "C89"
},
"c99": {
"label": "C99",
"condition": "tests.c99",
"output": [ "publicFeature" ]
},
"c11": {
"label": "C11",
"condition": "features.c99 && tests.c11",
"output": [ "publicFeature" ]
},
"precompile_header": {
"label": "Using precompiled headers",
"condition": "tests.precompile_header",
"output": [
"privateConfig",
{ "type": "varRemove", "negative": true, "name": "CONFIG", "value": "'precompile_header'" }
]
},
"ltcg": {
"label": "Using LTCG",
"autoDetect": false,
"output": [ "privateConfig" ]
},
"enable_new_dtags": {
"label": "Using new DTAGS",
"condition": "config.linux && tests.enable_new_dtags",
"output": [ "privateConfig" ]
},
"enable_gdb_index": {
"label": "Generating GDB index",
"autoDetect": "features.developer-build",
"condition": "config.gcc && !config.clang && (features.debug || features.force_debug_info || features.debug_and_release) && tests.gdb_index",
"output": [ "privateConfig" ]
},
"reduce_exports": {
"label": "Reduce amount of exported symbols",
"condition": "!config.win32 && tests.reduce_exports",
"output": [
"privateFeature",
"publicQtConfig",
{ "type": "define", "name": "QT_VISIBILITY_AVAILABLE" }
]
},
"reduce_relocations": {
"label": "Reduce amount of relocations",
"condition": "!config.win32 && tests.reduce_relocations",
"output": [
"privateFeature",
"publicQtConfig",
{ "type": "define", "name": "QT_REDUCE_RELOCATIONS" }
]
},
"signaling_nan": {
"label": "Signaling NaN",
"condition": "tests.signaling_nan",
"output": [ "publicFeature" ]
},
"sse2": {
"label": "SSE2",
"condition": "(arch.i386 || arch.x86_64) && tests.sse2",
"output": [
"privateConfig",
"privateFeature",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_SSE2", "value": 1 }
]
},
"sse3": {
"label": "SSE3",
"condition": "features.sse2 && tests.sse3",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_SSE3", "value": 1 }
]
},
"ssse3": {
"label": "SSSE3",
"condition": "features.sse3 && tests.ssse3",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_SSSE3", "value": 1 }
]
},
"sse4_1": {
"label": "SSE4.1",
"condition": "features.ssse3 && tests.sse4_1",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_SSE4_1", "value": 1 }
]
},
"sse4_2": {
"label": "SSE4.2",
"condition": "features.sse4_1 && tests.sse4_2",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_SSE4_2", "value": 1 }
]
},
"avx": {
"label": "AVX",
"condition": "features.sse4_2 && tests.avx",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX", "value": 1 }
]
},
"f16c": {
"label": "F16C",
"condition": "features.avx && tests.f16c",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_F16C", "value": 1 }
]
},
"avx2": {
"label": "AVX2",
"condition": "features.avx && tests.avx2",
"output": [
"privateConfig",
"privateFeature",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX2", "value": 1 }
]
},
"avx512f": {
"label": "F",
"condition": "features.avx2 && tests.avx512f",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512F", "value": 1 }
]
},
"avx512er": {
"label": "ER",
"condition": "features.avx512f && tests.avx512er",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512ER", "value": 1 }
]
},
"avx512cd": {
"label": "CD",
"condition": "features.avx512f && tests.avx512cd",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512CD", "value": 1 }
]
},
"avx512pf": {
"label": "PF",
"condition": "features.avx512f && tests.avx512pf",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512PF", "value": 1 }
]
},
"avx512dq": {
"label": "DQ",
"condition": "features.avx512f && tests.avx512dq",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512DQ", "value": 1 }
]
},
"avx512bw": {
"label": "BW",
"condition": "features.avx512f && tests.avx512bw",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512BW", "value": 1 }
]
},
"avx512vl": {
"label": "VL",
"condition": "features.avx512f && tests.avx512vl",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512VL", "value": 1 }
]
},
"avx512ifma": {
"label": "IFMA",
"condition": "features.avx512f && tests.avx512ifma",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512IFMA", "value": 1 }
]
},
"avx512vbmi": {
"label": "VBMI",
"condition": "features.avx512f && tests.avx512vbmi",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AVX512VBMI", "value": 1 }
]
},
"aesni": {
"label": "AES",
"condition": "features.sse2 && tests.aesni",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_AES", "value": 1 }
]
},
"rdrnd": {
"label": "RDRAND",
"condition": "tests.rdrnd",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_RDRND", "value": 1 }
]
},
"shani": {
"label": "SHA",
"condition": "features.sse2 && tests.shani",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_SHA", "value": 1 }
]
},
"x86SimdAlways": {
"label": "Intrinsics without -mXXX option",
"condition": "(arch.i386 || arch.x86_64) && tests.x86SimdAlways",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_SIMD_ALWAYS", "value": 1 }
]
},
"mips_dsp": {
"label": "DSP",
"condition": "arch.mips && subarch.dsp",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_MIPS_DSP", "value": 1 }
]
},
"mips_dspr2": {
"label": "DSPr2",
"condition": "arch.mips && subarch.dspr2",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_MIPS_DSPR2", "value": 1 }
]
},
"neon": {
"label": "NEON",
"condition": "(arch.arm || arch.arm64) && subarch.neon",
"output": [
"privateConfig",
{ "type": "define", "name": "QT_COMPILER_SUPPORTS_NEON", "value": 1 }
]
},
"posix_fallocate": {
"label": "POSIX fallocate()",
"condition": "tests.posix_fallocate",
"output": [ "privateFeature" ]
},
"alloca_h": {
"label": "alloca.h",
"condition": "tests.alloca_h",
"output": [ "privateFeature" ]
},
"alloca_malloc_h": {
"label": "alloca() in malloc.h",
"condition": "!features.alloca_h && tests.alloca_malloc_h",
"output": [ "privateFeature" ]
},
"alloca": {
"label": "alloca()",
"condition": "features.alloca_h || features.alloca_malloc_h || tests.alloca_stdlib_h",
"output": [ "privateFeature" ]
},
"stack-protector-strong": {
"label": "stack protection",
"condition": "config.qnx && tests.stack_protector",
"output": [ "privateFeature" ]
},
"system-zlib": {
"label": "Using system zlib",
"condition": "libs.zlib",
"output": [ "privateFeature" ]
},
"zstd": {
"label": "Zstandard support",
"condition": "libs.zstd",
"output": [ "privateFeature" ]
},
"thread": {
"label": "Thread support",
"purpose": "Provides QThread and related classes.",
"section": "Kernel",
"autoDetect": "!config.wasm",
"output": [ "publicFeature" ]
},
"future": {
"label": "QFuture",
"purpose": "Provides QFuture and related classes.",
"section": "Kernel",
"condition": "features.thread",
"output": [ "publicFeature" ]
},
"concurrent": {
"label": "Qt Concurrent",
"purpose": "Provides a high-level multi-threading API.",
"section": "Kernel",
"condition": "features.future",
"output": [ "publicFeature", "feature" ]
},
"dbus": {
"label": "Qt D-Bus",
"autoDetect": "!config.uikit && !config.android && !config.winrt",
"condition": "features.thread",
"output": [ "privateFeature", "feature" ]
},
"dbus-linked": {
"label": "Qt D-Bus directly linked to libdbus",
"enable": "input.dbus == 'linked'",
"disable": "input.dbus == 'runtime'",
"condition": "features.dbus && libs.dbus",
"output": [ "privateFeature" ]
},
"host-dbus": {
"label": "Qt D-Bus (Host)",
"autoDetect": "!config.android",
"condition": "libs.host_dbus",
"output": [ { "type": "varAppend", "name": "QT_HOST_CFLAGS_DBUS", "value": "libs.host_dbus.cflags", "eval": "true" } ]
},
"build_parts": {
"output": [ { "type": "varAppend", "name": "QT_BUILD_PARTS", "value": "tests.build_parts.value" } ]
},
"qreal": {
"label": "Type for qreal",
"output": [ "qreal" ]
},
"gui": {
"label": "Qt Gui",
"output": [
"privateFeature",
{ "type": "publicQtConfig", "negative": true }
]
},
"network": {
"label": "Qt Network",
"output": [ "privateFeature" ]
},
"sql": {
"label": "Qt Sql",
"condition": "features.thread",
"output": [ "privateFeature" ]
},
"testlib": {
"label": "Qt Testlib",
"output": [ "privateFeature" ]
},
"widgets": {
"label": "Qt Widgets",
"autoDetect": "!config.tvos && !config.watchos",
"condition": "features.gui",
"output": [
"privateFeature",
{ "type": "define", "negative": true, "name": "QT_NO_WIDGETS" },
{ "type": "publicQtConfig", "negative": true }
]
},
"xml": {
"label": "Qt Xml",
"output": [ "privateFeature" ]
},
"libudev": {
"label": "udev",
"condition": "libs.libudev",
"output": [ "privateFeature" ]
},
"qt_libinfix_plugins": {
"label": "Use QT_LIBINFIX for Plugins",
"autoDetect": false,
"enable": "input.qt_libinfix != '' && input.qt_libinfix_plugins == 'yes'",
"output": [ "privateConfig" ]
},
"compile_examples": {
"label": "Compile examples",
"autoDetect": "!config.wasm",
"output": [ "privateConfig" ]
},
"incredibuild_xge": {
"label": "IncrediBuild",
"emitIf": "var.QMAKE_HOST.os == 'Windows'",
"condition": "tests.incredibuild_xge",
"output": [ "publicConfig" ]
},
"ccache": {
"label": "Using ccache",
"autoDetect": false,
"condition": "tests.ccache",
"output": [ "privateConfig" ]
},
"msvc_mp": {
"label": "Use multiple processors when compiling with MSVC",
"emitIf": "config.msvc",
"autoDetect": "false",
"output": [ "privateConfig" ]
},
"static_runtime": {
"label": "Statically link the C/C++ runtime library",
"emitIf": "config.win32",
"autoDetect": false,
"condition": "!features.shared",
"output": [ "publicConfig", "publicQtConfig" ]
},
"dlopen": {
"label": "dlopen()",
"condition": "config.unix && libs.libdl",
"output": [ "privateFeature" ]
},
"relocatable": {
"label": "Relocatable",
"autoDetect": "features.shared",
"condition": "features.dlopen || config.win32 || !features.shared",
"output": [ "privateFeature" ]
}
},
"earlyReport": [
{
"type": "fatal",
"condition": "input.xplatform != '' && input.device != ''",
"message": "Cannot specify both -xplatform and -device."
},
{
"condition": "!features.prepare",
"comment": "This is not an actual report - instead, it activates the early setup."
},
{
"type": "fatal",
"condition": "!call.licenseCheck",
"message": "You are not licensed to use this software."
},
{
"type": "warning",
"condition": "input.debug_and_release == 'yes' && !config.darwin && !config.win32",
"message": "-debug-and-release is only supported on Darwin and Windows platforms.
Qt can be built in release mode with separate debug information, so
-debug-and-release is no longer necessary."
},
{
"type": "error",
"condition": "features.framework && features.debug && !features.debug_and_release",
"message": "debug-only framework builds are not supported. Configure with -no-framework if you want a pure debug build."
},
{
"type": "error",
"condition": "(features.rpath || features.rpath_dir) && !features.shared",
"message": "Static builds don't support RPATH"
},
{
"type": "error",
"condition": "(features.rpath || features.rpath_dir) && var.QMAKE_LFLAGS_RPATH == ''",
"message": "This platform does not support RPATH"
},
{
"type": "error",
"condition": "features.coverage && !config.clang",
"message": "Command line option -coverage is only supported with clang compilers."
}
],
"report": [
{
"type": "note",
"condition": "!features.shared",
"message": "Using static linking will disable the use of dynamically
loaded plugins. Make sure to import all needed static plugins,
or compile needed modules into the library."
},
{
"type": "note",
"condition": "features.release_tools && !features.debug",
"message": "-optimized-tools is not useful in -release mode."
},
{
"type": "note",
"condition": "input.qreal == 'double' && arch.arm",
"message": "Qt is using double for qreal on this system. This is binary-incompatible against Qt 5.1.
Configure with '-qreal float' to create a build that is binary-compatible with 5.1."
},
{
"type": "error",
"condition": "!features.stl",
"message": "Qt requires a compliant STL library."
},
{
"type": "emccVersion",
"condition": "config.wasm"
},
{
"type": "error",
"condition": "config.ios && features.debug && !features.debug_and_release",
"message": "Debug build wihtout Release build is not currently supported on ios see QTBUG-71990. Use -debug-and-release."
}
],
"summary": [
{
"type": "buildTypeAndConfig"
},
{
"section": "Build options",
"entries": [
{
"message": "Mode",
"type": "buildMode"
},
{
"type": "feature",
"args": "optimize_debug",
"condition": "!config.msvc && !config.clang && (features.debug || features.debug_and_release)"
},
{
"type": "feature",
"args": "optimize_size",
"condition": "!features.debug || features.debug_and_release"
},
"shared",
{
"message": "Using C standard",
"type": "firstAvailableFeature",
"args": "c11 c99 c89"
},
{
"message": "Using C++ standard",
"type": "firstAvailableFeature",
"args": "c++2a c++1z c++14 c++11"
},
{
"type": "feature",
"args": "ccache",
"condition": "config.unix"
},
{
"message": "Linker",
"type": "firstAvailableFeature",
"args": "use_bfd_linker use_gold_linker use_lld_linker",
"condition": "features.use_bfd_linker || features.use_gold_linker || features.use_lld_linker"
},
{
"type": "feature",
"args": "enable_new_dtags",
"condition": "config.linux"
},
{
"type": "feature",
"args": "enable_gdb_index",
"condition": "config.gcc && !config.clang && (features.debug || features.force_debug_info || features.debug_and_release)"
},
"relocatable",
"precompile_header",
"ltcg",
{
"section": "Target compiler supports",
"entries": [
{
"message": "SSE",
"type": "featureList",
"args": "sse2 sse3 ssse3 sse4_1 sse4_2",
"condition": "(arch.i386 || arch.x86_64)"
},
{
"message": "AVX",
"type": "featureList",
"args": "avx avx2",
"condition": "(arch.i386 || arch.x86_64)"
},
{
"message": "AVX512",
"type": "featureList",
"args": "avx512f avx512er avx512cd avx512pf avx512dq avx512bw avx512vl avx512ifma avx512vbmi",
"condition": "(arch.i386 || arch.x86_64)"
},
{
"message": "Other x86",
"type": "featureList",
"args": "aesni f16c rdrnd shani",
"condition": "(arch.i386 || arch.x86_64)"
},
{
"type": "feature",
"args": "x86SimdAlways",
"condition": "(arch.i386 || arch.x86_64) && !config.msvc"
},
{
"type": "feature",
"args": "neon",
"condition": "arch.arm || arch.arm64"
},
{
"type": "feature",
"args": "mips_dsp",
"condition": "arch.mips"
},
{
"type": "feature",
"args": "mips_dspr2",
"condition": "arch.mips"
}
]
},
{
"section": "Sanitizers",
"condition": "features.sanitizer",
"entries": [ "sanitize_address", "sanitize_thread", "sanitize_memory", "sanitize_undefined" ]
},
{
"message": "Code Coverage Instrumentation",
"type": "firstAvailableFeature",
"args": "coverage_trace_pc_guard",
"condition": "features.coverage"
},
{
"message": "Build parts",
"type": "buildParts"
},
{
"type": "feature",
"args": "appstore-compliant",
"condition": "config.darwin || config.android || config.winrt || config.win32"
}
]
}, {
"section": "Qt modules and options",
"entries": [
"concurrent",
"dbus",
"dbus-linked",
"gui",
"network",
"sql",
"testlib",
"widgets",
"xml"
]
}, {
"section": "Support enabled for",
"entries": [
"pkg-config",
"libudev",
"system-zlib",
"zstd"
]
}
]
}