lessThan(QT_MAJOR_VERSION, 5):error("This application needs to be built against Qt 5") CONFIG *= c++11 CONFIG *= link_pkgconfig CONFIG *= no_private_qt_headers_warning hide_symbols CONFIG -= app_bundle qml_debug CONFIG += exceptions DEFINES += QT_MESSAGELOGCONTEXT win32-msvc*:QMAKE_CXXFLAGS += /FS /wd4290 /DNOMINMAX /D_CRT_SECURE_NO_WARNINGS disable-installer:DEFINES *= AM_DISABLE_INSTALLER disable-external-dbus-interfaces:DEFINES *= AM_DISABLE_EXTERNAL_DBUS_INTERFACES systemd-workaround:DEFINES *= AM_SYSTEMD_WORKAROUND headless:DEFINES *= AM_HEADLESS enable-widgets:DEFINES *= AM_ENABLE_WIDGETS config_touchemulation:DEFINES += AM_ENABLE_TOUCH_EMULATION linux:!android:!disable-libbacktrace:if(enable-libbacktrace|CONFIG(debug, debug|release)):DEFINES *= AM_USE_LIBBACKTRACE !force-single-process { linux|osx { headless|qtHaveModule(compositor)|if(qtHaveModule(waylandcompositor):qtHaveModule(waylandcompositor-private)) { CONFIG *= auto-multi-process } } if(force-multi-process|auto-multi-process) { CONFIG *= multi-process DEFINES *= AM_MULTI_PROCESS } } DEFINES *= AM_VERSION=\\\"$$MODULE_VERSION\\\" defineTest(CONFIG_VALUE) { !contains(CONFIG, "^$$1=.*"):return(false) value = $$find(CONFIG, "^$$1=.*") !isEmpty(value):value=$$section(value, =, 1, 1) $$2 = $$value export($$2) return(true) } !defined(versionAtLeast, test): { defineTest(versionAtLeast) { LEFT_VERSION = $$eval($$1) LEFT_VERSION_MAJOR = $$section(LEFT_VERSION, ., 0, 0) LEFT_VERSION_MINOR = $$section(LEFT_VERSION, ., 1, 1) LEFT_VERSION_PATCH = $$section(LEFT_VERSION, ., 2, 2) RIGHT_VERSION = $$2 RIGHT_VERSION_MAJOR = $$section(RIGHT_VERSION, ., 0, 0) RIGHT_VERSION_MINOR = $$section(RIGHT_VERSION, ., 1, 1) RIGHT_VERSION_PATCH = $$section(RIGHT_VERSION, ., 2, 2) greaterThan(LEFT_VERSION_MAJOR, $$RIGHT_VERSION_MAJOR) { return(true) } else:equals(LEFT_VERSION_MAJOR, $$RIGHT_VERSION_MAJOR):greaterThan(LEFT_VERSION_MINOR, $$RIGHT_VERSION_MINOR) { return(true) } else:equals(LEFT_VERSION_MAJOR, $$RIGHT_VERSION_MAJOR):equals(LEFT_VERSION_MINOR, $$RIGHT_VERSION_MINOR):!lessThan(LEFT_VERSION_PATCH, $$RIGHT_VERSION_PATCH) { return(true) } return(false) } } CONFIG_VALUE(install-prefix, INSTALL_PREFIX) CONFIG_VALUE(hardware-id, AM_HARDWARE_ID):DEFINES *= AM_HARDWARE_ID=\\\"$$AM_HARDWARE_ID\\\" else:CONFIG_VALUE(hardware-id-from-file, AM_HARDWARE_ID_FF):DEFINES *= AM_HARDWARE_ID_FROM_FILE=\\\"$$AM_HARDWARE_ID_FF\\\" linux|force-libcrypto:DEFINES *= AM_USE_LIBCRYPTO !win32:load(am-coverage.prf) # Unlike MSVC, MingW does not add a dummy manifest, leading to UAC prompts on executable # filenames containing "bad" words like setup, install, update, patch, ... # RC files cannot be compiled into static libs, so we just generate one for each app. win32-g++*:equals(TEMPLATE, "app") { MINGW_MF = "1 24 { \"\ \ \ \ \ \ \ \ \ \" }" write_file($$OUT_PWD/mingw-resource-win.rc, MINGW_MF) RC_FILE = $$OUT_PWD/mingw-resource-win.rc }