Oprion for disable debug symbols or(and) strip debug symbols in release mode.

--HG--
branch : develop
This commit is contained in:
Roman Telezhynskyi 2015-05-16 20:38:05 +03:00
parent 3c6441bd85
commit 0fe066925a
4 changed files with 92 additions and 49 deletions

View File

@ -129,12 +129,16 @@ CONFIG(debug, debug|release){
QMAKE_CXXFLAGS += -fno-omit-frame-pointer # Need for exchndl.dll QMAKE_CXXFLAGS += -fno-omit-frame-pointer # Need for exchndl.dll
} }
# Turn on debug symbols in release mode on Unix systems. noDebugSymbols{ # For enable run qmake with CONFIG+=noDebugSymbols
# On Mac OS X temporarily disabled. Need find way how to strip binary file. # do nothing
!macx:!win32-msvc*{ } else {
QMAKE_CXXFLAGS_RELEASE += -g -gdwarf-3 # Turn on debug symbols in release mode on Unix systems.
QMAKE_CFLAGS_RELEASE += -g -gdwarf-3 # On Mac OS X temporarily disabled. Need find way how to strip binary file.
QMAKE_LFLAGS_RELEASE = !macx:!win32-msvc*{
QMAKE_CXXFLAGS_RELEASE += -g -gdwarf-3
QMAKE_CFLAGS_RELEASE += -g -gdwarf-3
QMAKE_LFLAGS_RELEASE =
}
} }
macx{ macx{
@ -595,25 +599,32 @@ DEPENDPATH += $$PWD/../libs/vgeometry
win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vgeometry/$${DESTDIR}/vgeometry.lib win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vgeometry/$${DESTDIR}/vgeometry.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vgeometry/$${DESTDIR}/libvgeometry.a else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../libs/vgeometry/$${DESTDIR}/libvgeometry.a
# Strip after you link all libaries. noDebugSymbols{ # For enable run qmake with CONFIG+=noDebugSymbols
CONFIG(release, debug|release){ # do nothing
win32:!win32-msvc*{ } else {
# Strip debug symbols. noStripDebugSymbols { # For enable run qmake with CONFIG+=noStripDebugSymbols
QMAKE_POST_LINK += objcopy --only-keep-debug bin/${TARGET} bin/${TARGET}.dbg && # do nothing
QMAKE_POST_LINK += objcopy --strip-debug bin/${TARGET} && } else {
QMAKE_POST_LINK += objcopy --add-gnu-debuglink="bin/${TARGET}.dbg" bin/${TARGET} # Strip after you link all libaries.
} CONFIG(release, debug|release){
win32:!win32-msvc*{
# Strip debug symbols.
QMAKE_POST_LINK += objcopy --only-keep-debug bin/${TARGET} bin/${TARGET}.dbg &&
QMAKE_POST_LINK += objcopy --strip-debug bin/${TARGET} &&
QMAKE_POST_LINK += objcopy --add-gnu-debuglink="bin/${TARGET}.dbg" bin/${TARGET}
}
unix:!macx{ unix:!macx{
# Strip debug symbols. # Strip debug symbols.
QMAKE_POST_LINK += objcopy --only-keep-debug ${TARGET} ${TARGET}.dbg && QMAKE_POST_LINK += objcopy --only-keep-debug ${TARGET} ${TARGET}.dbg &&
QMAKE_POST_LINK += objcopy --strip-debug ${TARGET} && QMAKE_POST_LINK += objcopy --strip-debug ${TARGET} &&
QMAKE_POST_LINK += objcopy --add-gnu-debuglink="${TARGET}.dbg" ${TARGET} QMAKE_POST_LINK += objcopy --add-gnu-debuglink="${TARGET}.dbg" ${TARGET}
}
}
} }
} }
macx{ macx{
# run macdeployqt to include all qt libraries in packet # run macdeployqt to include all qt libraries in packet
QMAKE_POST_LINK += $$[QT_INSTALL_BINS]/macdeployqt $${OUT_PWD}/$${DESTDIR}/$${TARGET}.app QMAKE_POST_LINK += $$[QT_INSTALL_BINS]/macdeployqt $${OUT_PWD}/$${DESTDIR}/$${TARGET}.app

View File

@ -104,16 +104,28 @@ CONFIG(debug, debug|release){
QMAKE_CXXFLAGS += -fno-omit-frame-pointer # Need for exchndl.dll QMAKE_CXXFLAGS += -fno-omit-frame-pointer # Need for exchndl.dll
} }
!macx:!win32-msvc*{ noStripDebugSymbols {
# Turn on debug symbols in release mode on Unix systems. # do nothing
# On Mac OS X temporarily disabled. TODO: find way how to strip binary file. } else {
QMAKE_CXXFLAGS_RELEASE += -g -gdwarf-3 !macx:!win32-msvc*{
QMAKE_CFLAGS_RELEASE += -g -gdwarf-3 noDebugSymbols{ # For enable run qmake with CONFIG+=noDebugSymbols
QMAKE_LFLAGS_RELEASE = # do nothing
} else {
# Turn on debug symbols in release mode on Unix systems.
# On Mac OS X temporarily disabled. TODO: find way how to strip binary file.
QMAKE_CXXFLAGS_RELEASE += -g -gdwarf-3
QMAKE_CFLAGS_RELEASE += -g -gdwarf-3
QMAKE_LFLAGS_RELEASE =
# Strip debug symbols. noStripDebugSymbols { # For enable run qmake with CONFIG+=noStripDebugSymbols
QMAKE_POST_LINK += objcopy --only-keep-debug bin/${TARGET} bin/${TARGET}.dbg && # do nothing
QMAKE_POST_LINK += objcopy --strip-debug bin/${TARGET} && } else {
QMAKE_POST_LINK += objcopy --add-gnu-debuglink="bin/${TARGET}.dbg" bin/${TARGET} # Strip debug symbols.
QMAKE_POST_LINK += objcopy --only-keep-debug bin/${TARGET} bin/${TARGET}.dbg &&
QMAKE_POST_LINK += objcopy --strip-debug bin/${TARGET} &&
QMAKE_POST_LINK += objcopy --add-gnu-debuglink="bin/${TARGET}.dbg" bin/${TARGET}
}
}
}
} }
} }

View File

@ -114,15 +114,23 @@ CONFIG(debug, debug|release){
} }
!macx:!win32-msvc*{ !macx:!win32-msvc*{
# Turn on debug symbols in release mode on Unix systems. noDebugSymbols{ # For enable run qmake with CONFIG+=noDebugSymbols
# On Mac OS X temporarily disabled. TODO: find way how to strip binary file. # do nothing
QMAKE_CXXFLAGS_RELEASE += -g -gdwarf-3 } else {
QMAKE_CFLAGS_RELEASE += -g -gdwarf-3 # Turn on debug symbols in release mode on Unix systems.
QMAKE_LFLAGS_RELEASE = # On Mac OS X temporarily disabled. TODO: find way how to strip binary file.
QMAKE_CXXFLAGS_RELEASE += -g -gdwarf-3
QMAKE_CFLAGS_RELEASE += -g -gdwarf-3
QMAKE_LFLAGS_RELEASE =
# Strip debug symbols. noStripDebugSymbols { # For enable run qmake with CONFIG+=noStripDebugSymbols
QMAKE_POST_LINK += objcopy --only-keep-debug bin/${TARGET} bin/${TARGET}.dbg && # do nothing
QMAKE_POST_LINK += objcopy --strip-debug bin/${TARGET} && } else {
QMAKE_POST_LINK += objcopy --add-gnu-debuglink="bin/${TARGET}.dbg" bin/${TARGET} # Strip debug symbols.
QMAKE_POST_LINK += objcopy --only-keep-debug bin/${TARGET} bin/${TARGET}.dbg &&
QMAKE_POST_LINK += objcopy --strip-debug bin/${TARGET} &&
QMAKE_POST_LINK += objcopy --add-gnu-debuglink="bin/${TARGET}.dbg" bin/${TARGET}
}
}
} }
} }

View File

@ -83,9 +83,13 @@ CONFIG(debug, debug|release){
# Release mode # Release mode
DEFINES += QT_NO_DEBUG_OUTPUT DEFINES += QT_NO_DEBUG_OUTPUT
# Turn on debug symbols in release mode on Unix systems. noDebugSymbols{ # For enable run qmake with CONFIG+=noDebugSymbols
# On Mac OS X temporarily disabled. Need find way how to strip binary file. # do nothing
unix:!macx:QMAKE_CXXFLAGS_RELEASE += -g -gdwarf-3 } else {
# Turn on debug symbols in release mode on Unix systems.
# On Mac OS X temporarily disabled. Need find way how to strip binary file.
unix:!macx:QMAKE_CXXFLAGS_RELEASE += -g -gdwarf-3
}
} }
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../libs/qmuparser/bin/ -lqmuparser2 win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../libs/qmuparser/bin/ -lqmuparser2
@ -95,12 +99,20 @@ else:unix: LIBS += -L$$OUT_PWD/../../libs/qmuparser/bin/ -lqmuparser
INCLUDEPATH += $$PWD/../../libs/qmuparser INCLUDEPATH += $$PWD/../../libs/qmuparser
DEPENDPATH += $$PWD/../../libs/qmuparser DEPENDPATH += $$PWD/../../libs/qmuparser
# Strip after you link all libaries. noDebugSymbols{ # For enable run qmake with CONFIG+=noDebugSymbols
CONFIG(release, debug|release){ # do nothing
unix:!macx{ } else {
# Strip debug symbols. noStripDebugSymbols { # For enable run qmake with CONFIG+=noStripDebugSymbols
QMAKE_POST_LINK += objcopy --only-keep-debug $(TARGET) $(TARGET).debug && # do nothing
QMAKE_POST_LINK += strip --strip-debug --strip-unneeded $(TARGET) && } else {
QMAKE_POST_LINK += objcopy --add-gnu-debuglink $(TARGET).debug $(TARGET) # Strip after you link all libaries.
CONFIG(release, debug|release){
unix:!macx{
# Strip debug symbols.
QMAKE_POST_LINK += objcopy --only-keep-debug $(TARGET) $(TARGET).debug &&
QMAKE_POST_LINK += strip --strip-debug --strip-unneeded $(TARGET) &&
QMAKE_POST_LINK += objcopy --add-gnu-debuglink $(TARGET).debug $(TARGET)
}
}
} }
} }