QT_BREAKPAD_ROOT_PATH = $$(QT_BREAKPAD_ROOT_PATH) !isEmpty(QT_BREAKPAD_ROOT_PATH): \ # quick test first whether requested ... !staticlib:!static:CONFIG(release, debug|release):contains(TEMPLATE, .*(app|lib)): \ # is it applicable? !contains(TARGET, .*phony_target.*): \ # monster hack, you don't really see this here, right? ;) system($$QT_BREAKPAD_ROOT_PATH/qtbreakpadsymbols --breakpad-exists) { # do we really have it? CONFIG += breakpad CONFIG -= no_debug_info separate_debug_info QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO } CONFIG(debug, debug|release):load(debug) else:load(release) debug_and_release:load(debug_and_release) incredibuild_xge { CONFIG -= incredibuild_xge CONFIG = incredibuild_xge $$CONFIG } breakpad { load(resolve_target) win32 { DEBUGFILENAME = $${QMAKE_RESOLVED_TARGET} PDBFILENAME = $$replace(QMAKE_RESOLVED_TARGET, ...$, pdb) DEBUGFILENAME ~= s,/,\\, PDBFILENAME ~= s,/,\\, QMAKE_CLEAN += $$PDBFILENAME # for the debug case it is hardcoded in qmake } else { DEBUGFILENAME = $$QMAKE_RESOLVED_TARGET } PROJECTPATH = $$OUT_PWD win32:PROJECTPATH ~= s,/,\\, !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t) QMAKE_POST_LINK = $$QMAKE_POST_LINK$$quote($${QT_BREAKPAD_ROOT_PATH}$${QMAKE_DIR_SEP}qtbreakpadsymbols \"$$DEBUGFILENAME\" \"$$PROJECTPATH\") !isEmpty(QMAKE_STRIP):QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote($$QMAKE_STRIP \"$$DEBUGFILENAME\") } QMAKE_INCDIR += $$QMAKE_INCDIR_POST QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST # Let every project have a standard GNU `check' target !contains(QMAKE_EXTRA_TARGETS, check) { # `make check' should iterate through all subdirs # (except those with no_default_target) contains(TEMPLATE, subdirs) { check.CONFIG = recursive check.recurse_target = check for(subdir, SUBDIRS) { subdir_config=$$eval($${subdir}.CONFIG) !contains(subdir_config, no_default_target):check.recurse += $$subdir unset(subdir_config) } } # `make check' should imply building the project else { check.depends = first } QMAKE_EXTRA_TARGETS += check }