4ac872639e
[ChangeLog][QtCore] Qt installations on the host system can now be relocated, i.e. moved to other directories. Add a new feature 'relocatable' that's by default enabled for non-static builds - on platforms where libdl is available, - on macOS when configured with -framework, - on Windows. If the feature is enabled, the directory where plugins, translations and other assets are loaded from is determined by the location of libQt5Core.so and the lib dir (bin dir on Windows) relative to the prefix. For static builds, the feature 'relocatable' is off by default. It can be turned on manually by passing -feature-relocatable to configure. In that case, QLibraryInfo::location(QLibraryInfo::TranslationsPaths) and friends will return paths rooted in the user application's directory. The installed and relocated qmake determines properties like QT_INSTALL_PREFIX and QT_HOST_PREFIX from the location of the qmake executable and the host bin dir relative to the host prefix. This is now always done, independent of the 'relocatable' feature. Note that qmake is currently only relocatable within an environment that has the same layout as the original build machine due to absolute paths to the original prefix in .prl, .pc and .la files. This will be addressed in a separate patch. Task-number: QTBUG-15234 Change-Id: I7319e2856d8fe17f277082d71216442f52580633 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
1593 lines
57 KiB
JSON
1593 lines
57 KiB
JSON
{
|
|
"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\")"
|
|
]
|
|
}
|
|
},
|
|
"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.darwin"
|
|
},
|
|
"debug_and_release": {
|
|
"label": "Compile libs in debug and release mode",
|
|
"autoDetect": "input.debug == ''",
|
|
"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",
|
|
"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" }
|
|
]
|
|
},
|
|
"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."
|
|
}
|
|
],
|
|
|
|
"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"
|
|
]
|
|
}
|
|
]
|
|
|
|
}
|