{ "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 // https://bugs.llvm.org//show_bug.cgi?id=33117", "#include " ], "main": [ "std::variant v(42);", "int i = std::get(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 " ], "main": [ "using B = std::numeric_limits;", "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 ", "#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 ", "# 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", "purpose": "Enable the Qt installation to be relocated.", "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" ] } ] }