summaryrefslogtreecommitdiffstats
path: root/qmake-features/am-config.prf
blob: d115eb63879a83459cbdf0dbe7a421679a03c018 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

CONFIG *= c++11
CONFIG *= link_pkgconfig
CONFIG *= no_private_qt_headers_warning hide_symbols
CONFIG -= app_bundle qml_debug
CONFIG += exceptions

!qtHaveModule(gui)|!qtHaveModule(quick)|!qtConfig(opengl) {
    CONFIG *= headless
}

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|macos {
        headless|if(qtHaveModule(waylandcompositor)) {
            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)
}

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 { \"<?xml version=\"\"1.0\"\" encoding=\"\"UTF-8\"\" standalone=\"\"yes\"\"?>\
                <assembly xmlns=\"\"urn:schemas-microsoft-com:asm.v1\"\" manifestVersion=\"\"1.0\"\">\
                  <trustInfo xmlns=\"\"urn:schemas-microsoft-com:asm.v2\"\">\
                    <security>\
                      <requestedPrivileges xmlns=\"\"urn:schemas-microsoft-com:asm.v3\"\">\
                        <requestedExecutionLevel level=\"\"asInvoker\"\" uiAccess=\"\"false\"\" />\
                      </requestedPrivileges>\
                    </security>\
                  </trustInfo>\
                </assembly>\" }"
    write_file($$OUT_PWD/mingw-resource-win.rc, MINGW_MF)
    RC_FILE = $$OUT_PWD/mingw-resource-win.rc
}