1 | QT_BREAKPAD_ROOT_PATH = $$(QT_BREAKPAD_ROOT_PATH)
|
---|
2 | !isEmpty(QT_BREAKPAD_ROOT_PATH): \ # quick test first whether requested ...
|
---|
3 | !staticlib:!static:CONFIG(release, debug|release):contains(TEMPLATE, .*(app|lib)): \ # is it applicable?
|
---|
4 | !contains(TARGET, .*phony_target.*): \ # monster hack, you don't really see this here, right? ;)
|
---|
5 | system($$QT_BREAKPAD_ROOT_PATH/qtbreakpadsymbols --breakpad-exists) { # do we really have it?
|
---|
6 | CONFIG += breakpad
|
---|
7 | CONFIG -= no_debug_info separate_debug_info
|
---|
8 | QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
|
---|
9 | QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO
|
---|
10 | QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO
|
---|
11 | }
|
---|
12 |
|
---|
13 | CONFIG(debug, debug|release):load(debug)
|
---|
14 | else:load(release)
|
---|
15 | debug_and_release:load(debug_and_release)
|
---|
16 | staticlib:load(staticlib)
|
---|
17 | CONFIG(static, static|shared):load(static)
|
---|
18 | else:load(shared)
|
---|
19 | static_and_shared:load(static_and_shared)
|
---|
20 | incredibuild_xge {
|
---|
21 | CONFIG -= incredibuild_xge
|
---|
22 | CONFIG = incredibuild_xge $$CONFIG
|
---|
23 | }
|
---|
24 |
|
---|
25 | breakpad {
|
---|
26 | !contains(DESTDIR, (/|.:[/\\\\]).*):TARGET_BASEPATH = $${OUT_PWD}/
|
---|
27 | !isEmpty(DESTDIR):TARGET_BASEPATH = $${TARGET_BASEPATH}$${DESTDIR}/
|
---|
28 |
|
---|
29 | win32 {
|
---|
30 | TARGET_BASEPATH ~= s,/,\\,
|
---|
31 | contains(TEMPLATE, .*lib) {
|
---|
32 | isEmpty(TARGET_VERSION_EXT):!isEmpty(VERSION) {
|
---|
33 | TARGET_VERSION_EXT = $$section(VERSION, ., 0, 0)
|
---|
34 | isEqual(TARGET_VERSION_EXT, 0):unset(TARGET_VERSION_EXT)
|
---|
35 | }
|
---|
36 | TARGET_EXT = .dll
|
---|
37 | } else {
|
---|
38 | TARGET_EXT = .exe
|
---|
39 | }
|
---|
40 |
|
---|
41 | DEBUGFILENAME = $${TARGET_BASEPATH}$${TARGET}$${TARGET_VERSION_EXT}$${TARGET_EXT}
|
---|
42 | PDBFILENAME = $${TARGET_BASEPATH}$${TARGET}$${TARGET_VERSION_EXT}.pdb
|
---|
43 | DEBUGFILENAME ~= s,/,\\,
|
---|
44 | PDBFILENAME ~= s,/,\\,
|
---|
45 | QMAKE_CLEAN += $$PDBFILENAME # for the debug case it is hardcoded in qmake
|
---|
46 | } else {
|
---|
47 | contains(TEMPLATE, .*lib):LIBPREFIX = lib
|
---|
48 |
|
---|
49 | macx {
|
---|
50 | equals(TEMPLATE, lib) {
|
---|
51 | lib_bundle {
|
---|
52 | TARGET_BASEPATH = $${TARGET_BASEPATH}$${TARGET}.framework/$${TARGET}
|
---|
53 | } else {
|
---|
54 | TARGET_BASEPATH = $${TARGET_BASEPATH}$${LIBPREFIX}$${TARGET}
|
---|
55 | !plugin {
|
---|
56 | TEMP_VERSION = $$section(VERSION, ., 0, 0)
|
---|
57 | isEmpty(TEMP_VERSION):TEMP_VERSION = 1
|
---|
58 | TARGET_BASEPATH = $${TARGET_BASEPATH}.$${TEMP_VERSION}
|
---|
59 | }
|
---|
60 | TARGET_BASEPATH = $${TARGET_BASEPATH}.$${QMAKE_EXTENSION_SHLIB}
|
---|
61 | }
|
---|
62 | } else {
|
---|
63 | app_bundle {
|
---|
64 | TARGET_BASEPATH = $${TARGET_BASEPATH}$${TARGET}.app/Contents/MacOS/$${TARGET}
|
---|
65 | } else {
|
---|
66 | TARGET_BASEPATH = $${TARGET_BASEPATH}$${TARGET}
|
---|
67 | }
|
---|
68 | }
|
---|
69 | DEBUGFILENAME = $$TARGET_BASEPATH
|
---|
70 | } else {
|
---|
71 | equals(TEMPLATE, lib) {
|
---|
72 | plugin {
|
---|
73 | TARGET_BASEPATH = $${TARGET_BASEPATH}$${LIBPREFIX}$${TARGET}.so
|
---|
74 | } else {
|
---|
75 | TEMP_VERSION = $$VERSION
|
---|
76 | isEmpty(TEMP_VERSION):TEMP_VERSION = 1.0.0
|
---|
77 | TARGET_BASEPATH = $${TARGET_BASEPATH}$${LIBPREFIX}$${TARGET}.so.$${TEMP_VERSION}
|
---|
78 | }
|
---|
79 | } else {
|
---|
80 | TARGET_BASEPATH = $${TARGET_BASEPATH}$${TARGET}
|
---|
81 | }
|
---|
82 | DEBUGFILENAME = $$TARGET_BASEPATH
|
---|
83 | }
|
---|
84 | }
|
---|
85 |
|
---|
86 | PROJECTPATH = $$OUT_PWD
|
---|
87 | win32:PROJECTPATH ~= s,/,\\,
|
---|
88 |
|
---|
89 | !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)
|
---|
90 | QMAKE_POST_LINK += $$quote($${QT_BREAKPAD_ROOT_PATH}$${DIR_SEPARATOR}qtbreakpadsymbols \"$$DEBUGFILENAME\" \"$$PROJECTPATH\")
|
---|
91 | !isEmpty(QMAKE_STRIP):QMAKE_POST_LINK = $$quote($$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$QMAKE_STRIP \"$$DEBUGFILENAME\")
|
---|
92 |
|
---|
93 | unset(TARGET_BASEPATH)
|
---|
94 | unset(SYMBOLFILENAME)
|
---|
95 | unset(TARGET_EXT)
|
---|
96 | unset(TARGET_VERSION_EXT)
|
---|
97 | unset(TEMP_VERSION)
|
---|
98 | }
|
---|
99 |
|
---|
100 | QMAKE_INCDIR += $$QMAKE_INCDIR_POST
|
---|
101 | QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST
|
---|
102 |
|
---|
103 | # Let every project have a standard GNU `check' target
|
---|
104 | !contains(QMAKE_EXTRA_TARGETS, check) {
|
---|
105 | # `make check' should iterate through all subdirs
|
---|
106 | contains(TEMPLATE, subdirs) {
|
---|
107 | check.CONFIG = recursive
|
---|
108 | check.recurse = $$SUBDIRS
|
---|
109 | check.recurse_target = check
|
---|
110 | }
|
---|
111 | # `make check' should imply building the project
|
---|
112 | else {
|
---|
113 | check.depends = first
|
---|
114 | }
|
---|
115 | QMAKE_EXTRA_TARGETS += check
|
---|
116 | }
|
---|
117 |
|
---|
118 | # Add special translation sources for projects that require them.
|
---|
119 | # Note 1: Since lupdate will not parse regular config scopes right, contains checks are used instead.
|
---|
120 | # Note 2: Checking for last value of TEMPLATE is used instead of simple contains check because
|
---|
121 | # lupdate doesn't respect "-=" variable assignments and therefore always finds "app"
|
---|
122 | # as the first value of TEMPLATE variable.
|
---|
123 | contains(CONFIG, lupdate_run):contains(CONFIG, localize_deployment) {
|
---|
124 | equals($$list($$last(TEMPLATE)), app): SOURCES += $$[QT_INSTALL_DATA]/mkspecs/common/symbian/appCaptionForTranslation.cpp
|
---|
125 | SOURCES += $$[QT_INSTALL_DATA]/mkspecs/common/symbian/packageNameForTranslation.cpp
|
---|
126 | }
|
---|