1 contains(TEMPLATE, ".*(lib|app)"):CONFIG += have_target
3 !have_target:!force_qt: CONFIG -= qt
5 !shared:!dll:!static:!staticlib {
6 contains(QT_CONFIG, static): CONFIG += static
10 QT_BREAKPAD_ROOT_PATH = $$(QT_BREAKPAD_ROOT_PATH)
11 !isEmpty(QT_BREAKPAD_ROOT_PATH): \ # quick test first whether requested ...
12 !staticlib:!static:CONFIG(release, debug|release):have_target: \ # is it applicable?
13 !contains(TARGET, .*phony_target.*): \ # monster hack, you don't really see this here, right? ;)
14 system($$QT_BREAKPAD_ROOT_PATH/qtbreakpadsymbols --breakpad-exists) { # do we really have it?
16 CONFIG -= no_debug_info separate_debug_info
17 QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
18 QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO
19 QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO
22 CONFIG(debug, debug|release):load(debug)
24 debug_and_release:load(debug_and_release)
26 CONFIG -= incredibuild_xge
27 CONFIG = incredibuild_xge $$CONFIG
32 win32: QMAKE_CLEAN += $$replace(QMAKE_RESOLVED_TARGET, ...$, pdb) # for the debug case it is hardcoded in qmake
34 DEBUGFILENAME = $$shell_quote($$native_path($$QMAKE_RESOLVED_TARGET))
35 PROJECTPATH = $$shell_quote($$native_path($$OUT_PWD))
37 !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)
38 QMAKE_POST_LINK = $$QMAKE_POST_LINK$$quote($${QT_BREAKPAD_ROOT_PATH}$${QMAKE_DIR_SEP}qtbreakpadsymbols $$DEBUGFILENAME $$PROJECTPATH)
39 !isEmpty(QMAKE_STRIP):QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote($$QMAKE_STRIP $$DEBUGFILENAME)
42 QMAKE_INCDIR += $$QMAKE_INCDIR_POST
43 QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST
45 # Let every project have a standard GNU `check' target
46 !contains(QMAKE_EXTRA_TARGETS, check) {
47 # `make check' should iterate through all subdirs
48 # (except those with no_default_target or no_check_target)
49 contains(TEMPLATE, subdirs) {
50 for(subdir, SUBDIRS) {
51 subdir_config=$$eval($${subdir}.CONFIG)
52 !contains(subdir_config, no_check_target):!contains(subdir_config, no_default_target):check.recurse += $$subdir
55 !isEmpty(check.recurse) {
56 # setup the recurse target only when there is to recurse into
57 check.CONFIG = recursive
58 check.recurse_target = check
61 # `make check' should imply building the project
65 QMAKE_EXTRA_TARGETS += check
68 # Let every project have a 'docs' target
69 !contains(QMAKE_EXTRA_TARGETS, docs) {
70 contains(TEMPLATE, subdirs) {
71 # `make docs' should iterate through all subdirs
72 # (except those with no_default_target or no_docs_target)
73 !contains(CONFIG, no_docs_target):for(subdir, SUBDIRS) {
74 subdir_config = $$eval($${subdir}.CONFIG)
75 !contains(subdir_config, no_docs_target):!contains(subdir_config, no_default_target):docs.recurse += $$subdir
78 !isEmpty(docs.recurse) {
79 # setup the recurse target only when there is something to recurse into
80 docs.CONFIG = recursive
81 docs.recurse_target = docs
84 # apps and libs only generate docs if QMAKE_DOCS is set
85 !isEmpty(QMAKE_DOCS) {
86 !exists($$QMAKE_DOCS):error("Cannot find documentation specification file $$QMAKE_DOCS")
87 qtPrepareTool(QDOC, qdoc)
88 for(index, QMAKE_DOCS_INDEX):QDOC_INDEX += -indexdir $$index
89 !isEmpty(QMAKE_DOCS_INSTALLDIR):QMAKE_DOCS_OPTIONS += -installdir $$QMAKE_DOCS_INSTALLDIR
90 docs.commands += $$QDOC $$QMAKE_DOCS_OPTIONS $$QDOC_INDEX $$QMAKE_DOCS
93 QMAKE_EXTRA_TARGETS += docs