Files
renderdoc/qrenderdoc/qrenderdoc.pro
T
baldurk f2e7f8f1a0 Refactor crash/bug reporter system
* The UI dialog is now in Qt. We run qrenderdoc.exe with a very minimal
  startup to display the dialog and send the report.
* The flow has been simplified to have less text and an easier time to
  just click through and send.
* On the first report, the user is gently nudged to enter their email
  address for contact and by default the email is saved for next time.
  They're not nagged more than once about this.
* Optionally the user can select to upload the capture. This is always
  default off, and there is a confirmation dialog making sure the user
  intended to select it.
* After the bug is reported, a unique URL is generated and returned
  which the user can then click back on to see if there's any update. By
  default the UI will also remember the URL and check it every couple
  of days and alert the user in the help menu that there's an update.
2017-12-19 12:26:34 +00:00

380 lines
14 KiB
Prolog

#-------------------------------------------------
#
# Project created by QtCreator 2015-03-18T20:10:50
#
#-------------------------------------------------
QT += core gui widgets svg network
CONFIG += silent
lessThan(QT_MAJOR_VERSION, 5): error("requires Qt 5.6; found $$[QT_VERSION]")
equals(QT_MAJOR_VERSION, 5): lessThan(QT_MINOR_VERSION, 6): error("requires Qt 5.6; found $$[QT_VERSION]")
TARGET = qrenderdoc
TEMPLATE = app
# include path for core renderdoc API
INCLUDEPATH += $$_PRO_FILE_PWD_/../renderdoc/api/replay
# Allow includes relative to the root
INCLUDEPATH += $$_PRO_FILE_PWD_/
# For ToolWindowManager
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/toolwindowmanager
# For FlowLayout
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/flowlayout
# For Scintilla
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/scintilla/include/qt
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/scintilla/include
# Disable conversions to/from const char * in QString
DEFINES += QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII
# Different output folders per platform
win32 {
RC_INCLUDEPATH = $$_PRO_FILE_PWD_/../renderdoc/api/replay
RC_FILE = Resources/qrenderdoc.rc
# generate pdb files even in release
QMAKE_LFLAGS_RELEASE+=/MAP
QMAKE_CFLAGS_RELEASE += /Zi
QMAKE_LFLAGS_RELEASE +=/debug /opt:ref
!contains(QMAKE_TARGET.arch, x86_64) {
Debug:DESTDIR = $$_PRO_FILE_PWD_/../Win32/Development
Release:DESTDIR = $$_PRO_FILE_PWD_/../Win32/Release
} else {
Debug:DESTDIR = $$_PRO_FILE_PWD_/../x64/Development
Release:DESTDIR = $$_PRO_FILE_PWD_/../x64/Release
}
# Run SWIG here, since normally we run it from VS
swig.name = SWIG ${QMAKE_FILE_IN}
swig.input = SWIGSOURCES
swig.output = ${QMAKE_FILE_BASE}_python.cxx
swig.commands = $$_PRO_FILE_PWD_/3rdparty/swig/swig.exe -v -Wextra -Werror -O -c++ -python -modern -modernargs -enumclass -fastunpack -py3 -builtin -I$$_PRO_FILE_PWD_ -I$$_PRO_FILE_PWD_/../renderdoc/api/replay -outdir . -o ${QMAKE_FILE_BASE}_python.cxx ${QMAKE_FILE_IN}
swig.CONFIG += target_predeps
swig.variable_out = GENERATED_SOURCES
silent:swig.commands = @echo SWIG ${QMAKE_FILE_IN} && $$swig.commands
QMAKE_EXTRA_COMPILERS += swig
# windows only qrc file with qt.conf
RESOURCES += Resources/qtconf.qrc
SWIGSOURCES += Code/pyrenderdoc/renderdoc.i
SWIGSOURCES += Code/pyrenderdoc/qrenderdoc.i
# Embed renderdoc.py and qrenderdoc.py
RC_DEFINES = RENDERDOC_PY_PATH=renderdoc.py
RC_DEFINES += QRENDERDOC_PY_PATH=qrenderdoc.py
# Include and link against python
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/python/include
!contains(QMAKE_TARGET.arch, x86_64) {
LIBS += $$_PRO_FILE_PWD_/3rdparty/python/Win32/python36.lib
} else {
LIBS += $$_PRO_FILE_PWD_/3rdparty/python/x64/python36.lib
}
# Include and link against PySide2
DEFINES += PYSIDE2_ENABLED=1
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/pyside/include/shiboken2
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/pyside/include/PySide2
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/pyside/include/PySide2/QtCore
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/pyside/include/PySide2/QtGui
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/pyside/include/PySide2/QtWidgets
!contains(QMAKE_TARGET.arch, x86_64) {
LIBS += $$_PRO_FILE_PWD_/3rdparty/pyside/Win32/shiboken2.lib
} else {
LIBS += $$_PRO_FILE_PWD_/3rdparty/pyside/x64/shiboken2.lib
}
# Link against the core library
LIBS += $$DESTDIR/renderdoc.lib
QMAKE_CXXFLAGS_WARN_ON -= -w34100
DEFINES += RENDERDOC_PLATFORM_WIN32
} else {
isEmpty(CMAKE_DIR) {
error("When run from outside CMake, please set the Build Environment Variable CMAKE_DIR to point to your CMake build root. In Qt Creator add CMAKE_DIR=/path/to/renderdoc/build under 'Additional arguments' in the qmake Build Step. If running qmake directly, add CMAKE_DIR=/path/to/renderdoc/build/ to the command line.")
}
DESTDIR=$$CMAKE_DIR/bin
include($$CMAKE_DIR/qrenderdoc/qrenderdoc_cmake.pri)
# Temp files into .obj
MOC_DIR = .obj
UI_DIR = .obj
RCC_DIR = .obj
OBJECTS_DIR = .obj
# Link against the core library
LIBS += -lrenderdoc
QMAKE_LFLAGS += '-Wl,-rpath,\'\$$ORIGIN\',-rpath,\'\$$ORIGIN/../lib'$$LIB_SUFFIX'/'$$LIB_SUBFOLDER_TRAIL_SLASH'\''
# Add the SWIG files that were generated in cmake
SOURCES += $$CMAKE_DIR/qrenderdoc/renderdoc_python.cxx
SOURCES += $$CMAKE_DIR/qrenderdoc/renderdoc.py.c
SOURCES += $$CMAKE_DIR/qrenderdoc/qrenderdoc_python.cxx
SOURCES += $$CMAKE_DIR/qrenderdoc/qrenderdoc.py.c
CONFIG += warn_off
CONFIG += c++14
QMAKE_CFLAGS_WARN_OFF -= -w
QMAKE_CXXFLAGS_WARN_OFF -= -w
macx: {
DEFINES += RENDERDOC_PLATFORM_POSIX RENDERDOC_PLATFORM_APPLE
ICON = $$OSX_ICONFILE
INFO_PLIST_PATH = $$shell_quote($$DESTDIR/$${TARGET}.app/Contents/Info.plist)
QMAKE_POST_LINK += $$_PRO_FILE_PWD_/../scripts/set_plist_version.sh $${RENDERDOC_VERSION}.0 $${INFO_PLIST_PATH}
} else {
QT += x11extras
DEFINES += RENDERDOC_PLATFORM_POSIX RENDERDOC_PLATFORM_LINUX RENDERDOC_WINDOWING_XLIB RENDERDOC_WINDOWING_XCB
QMAKE_LFLAGS += '-Wl,--no-as-needed -rdynamic'
contains(QMAKE_CXXFLAGS, "-DRENDERDOC_SUPPORT_GL") {
# Link against GL
LIBS += -lGL
}
contains(QMAKE_CXXFLAGS, "-DRENDERDOC_SUPPORT_GLES") {
# Link against EGL
LIBS += -lEGL
}
}
}
# Add our sources first so Qt Creator adds new files here
SOURCES += Code/qrenderdoc.cpp \
Code/qprocessinfo.cpp \
Code/ReplayManager.cpp \
Code/CaptureContext.cpp \
Code/ScintillaSyntax.cpp \
Code/QRDUtils.cpp \
Code/FormatElement.cpp \
Code/Resources.cpp \
Code/pyrenderdoc/PythonContext.cpp \
Code/Interface/QRDInterface.cpp \
Code/Interface/Analytics.cpp \
Code/Interface/CommonPipelineState.cpp \
Code/Interface/PersistantConfig.cpp \
Code/Interface/RemoteHost.cpp \
Styles/StyleData.cpp \
Styles/RDStyle/RDStyle.cpp \
Styles/RDTweakedNativeStyle/RDTweakedNativeStyle.cpp \
Windows/Dialogs/AboutDialog.cpp \
Windows/Dialogs/CrashDialog.cpp \
Windows/MainWindow.cpp \
Windows/EventBrowser.cpp \
Windows/TextureViewer.cpp \
Widgets/Extended/RDLineEdit.cpp \
Widgets/Extended/RDTextEdit.cpp \
Widgets/Extended/RDLabel.cpp \
Widgets/Extended/RDHeaderView.cpp \
Widgets/Extended/RDToolButton.cpp \
Widgets/Extended/RDDoubleSpinBox.cpp \
Widgets/Extended/RDListView.cpp \
Widgets/CustomPaintWidget.cpp \
Widgets/ResourcePreview.cpp \
Widgets/ThumbnailStrip.cpp \
Widgets/TextureGoto.cpp \
Widgets/RangeHistogram.cpp \
Windows/Dialogs/TextureSaveDialog.cpp \
Windows/Dialogs/CaptureDialog.cpp \
Windows/Dialogs/LiveCapture.cpp \
Widgets/Extended/RDListWidget.cpp \
Windows/APIInspector.cpp \
Windows/PipelineState/PipelineStateViewer.cpp \
Windows/PipelineState/VulkanPipelineStateViewer.cpp \
Windows/PipelineState/D3D11PipelineStateViewer.cpp \
Windows/PipelineState/D3D12PipelineStateViewer.cpp \
Windows/PipelineState/GLPipelineStateViewer.cpp \
Widgets/Extended/RDTreeView.cpp \
Widgets/Extended/RDTreeWidget.cpp \
Windows/ConstantBufferPreviewer.cpp \
Widgets/BufferFormatSpecifier.cpp \
Windows/BufferViewer.cpp \
Widgets/Extended/RDTableView.cpp \
Windows/DebugMessageView.cpp \
Windows/CommentView.cpp \
Windows/StatisticsViewer.cpp \
Windows/TimelineBar.cpp \
Windows/Dialogs/SettingsDialog.cpp \
Windows/Dialogs/OrderedListEditor.cpp \
Widgets/Extended/RDTableWidget.cpp \
Windows/Dialogs/SuggestRemoteDialog.cpp \
Windows/Dialogs/VirtualFileDialog.cpp \
Windows/Dialogs/RemoteManager.cpp \
Windows/PixelHistoryView.cpp \
Widgets/PipelineFlowChart.cpp \
Windows/Dialogs/EnvironmentEditor.cpp \
Widgets/FindReplace.cpp \
Widgets/Extended/RDSplitter.cpp \
Windows/Dialogs/TipsDialog.cpp \
Windows/PythonShell.cpp \
Windows/Dialogs/PerformanceCounterSelection.cpp \
Windows/PerformanceCounterViewer.cpp \
Windows/ResourceInspector.cpp \
Windows/Dialogs/AnalyticsConfirmDialog.cpp \
Windows/Dialogs/AnalyticsPromptDialog.cpp
HEADERS += Code/CaptureContext.h \
Code/qprocessinfo.h \
Code/ReplayManager.h \
Code/ScintillaSyntax.h \
Code/QRDUtils.h \
Code/Resources.h \
Code/pyrenderdoc/PythonContext.h \
Code/pyrenderdoc/pyconversion.h \
Code/pyrenderdoc/document_check.h \
Code/Interface/QRDInterface.h \
Code/Interface/Analytics.h \
Code/Interface/CommonPipelineState.h \
Code/Interface/PersistantConfig.h \
Code/Interface/RemoteHost.h \
Styles/StyleData.h \
Styles/RDStyle/RDStyle.h \
Styles/RDTweakedNativeStyle/RDTweakedNativeStyle.h \
Windows/Dialogs/AboutDialog.h \
Windows/Dialogs/CrashDialog.h \
Windows/MainWindow.h \
Windows/EventBrowser.h \
Windows/TextureViewer.h \
Widgets/Extended/RDLineEdit.h \
Widgets/Extended/RDTextEdit.h \
Widgets/Extended/RDLabel.h \
Widgets/Extended/RDHeaderView.h \
Widgets/Extended/RDToolButton.h \
Widgets/Extended/RDDoubleSpinBox.h \
Widgets/Extended/RDListView.h \
Widgets/CustomPaintWidget.h \
Widgets/ResourcePreview.h \
Widgets/ThumbnailStrip.h \
Widgets/TextureGoto.h \
Widgets/RangeHistogram.h \
Windows/Dialogs/TextureSaveDialog.h \
Windows/Dialogs/CaptureDialog.h \
Windows/Dialogs/LiveCapture.h \
Widgets/Extended/RDListWidget.h \
Windows/APIInspector.h \
Windows/PipelineState/PipelineStateViewer.h \
Windows/PipelineState/VulkanPipelineStateViewer.h \
Windows/PipelineState/D3D11PipelineStateViewer.h \
Windows/PipelineState/D3D12PipelineStateViewer.h \
Windows/PipelineState/GLPipelineStateViewer.h \
Widgets/Extended/RDTreeView.h \
Widgets/Extended/RDTreeWidget.h \
Windows/ConstantBufferPreviewer.h \
Widgets/BufferFormatSpecifier.h \
Windows/BufferViewer.h \
Widgets/Extended/RDTableView.h \
Windows/DebugMessageView.h \
Windows/CommentView.h \
Windows/StatisticsViewer.h \
Windows/TimelineBar.h \
Windows/Dialogs/SettingsDialog.h \
Windows/Dialogs/OrderedListEditor.h \
Widgets/Extended/RDTableWidget.h \
Windows/Dialogs/SuggestRemoteDialog.h \
Windows/Dialogs/VirtualFileDialog.h \
Windows/Dialogs/RemoteManager.h \
Windows/PixelHistoryView.h \
Widgets/PipelineFlowChart.h \
Windows/Dialogs/EnvironmentEditor.h \
Widgets/FindReplace.h \
Widgets/Extended/RDSplitter.h \
Windows/Dialogs/TipsDialog.h \
Windows/PythonShell.h \
Windows/Dialogs/PerformanceCounterSelection.h \
Windows/PerformanceCounterViewer.h \
Windows/ResourceInspector.h \
Windows/Dialogs/AnalyticsConfirmDialog.h \
Windows/Dialogs/AnalyticsPromptDialog.h
FORMS += Windows/Dialogs/AboutDialog.ui \
Windows/Dialogs/CrashDialog.ui \
Windows/MainWindow.ui \
Windows/EventBrowser.ui \
Windows/TextureViewer.ui \
Widgets/ResourcePreview.ui \
Widgets/ThumbnailStrip.ui \
Windows/Dialogs/TextureSaveDialog.ui \
Windows/Dialogs/CaptureDialog.ui \
Windows/Dialogs/LiveCapture.ui \
Windows/APIInspector.ui \
Windows/PipelineState/PipelineStateViewer.ui \
Windows/PipelineState/VulkanPipelineStateViewer.ui \
Windows/PipelineState/D3D11PipelineStateViewer.ui \
Windows/PipelineState/D3D12PipelineStateViewer.ui \
Windows/PipelineState/GLPipelineStateViewer.ui \
Windows/ConstantBufferPreviewer.ui \
Widgets/BufferFormatSpecifier.ui \
Windows/BufferViewer.ui \
Windows/ShaderViewer.ui \
Windows/DebugMessageView.ui \
Windows/CommentView.ui \
Windows/StatisticsViewer.ui \
Windows/Dialogs/SettingsDialog.ui \
Windows/Dialogs/OrderedListEditor.ui \
Windows/Dialogs/SuggestRemoteDialog.ui \
Windows/Dialogs/VirtualFileDialog.ui \
Windows/Dialogs/RemoteManager.ui \
Windows/PixelHistoryView.ui \
Windows/Dialogs/EnvironmentEditor.ui \
Widgets/FindReplace.ui \
Windows/Dialogs/TipsDialog.ui \
Windows/PythonShell.ui \
Windows/Dialogs/PerformanceCounterSelection.ui \
Windows/PerformanceCounterViewer.ui \
Windows/ResourceInspector.ui \
Windows/Dialogs/AnalyticsConfirmDialog.ui \
Windows/Dialogs/AnalyticsPromptDialog.ui
RESOURCES += Resources/resources.qrc
# Add ToolWindowManager
SOURCES += 3rdparty/toolwindowmanager/ToolWindowManager.cpp \
3rdparty/toolwindowmanager/ToolWindowManagerArea.cpp \
3rdparty/toolwindowmanager/ToolWindowManagerSplitter.cpp \
3rdparty/toolwindowmanager/ToolWindowManagerTabBar.cpp \
3rdparty/toolwindowmanager/ToolWindowManagerWrapper.cpp
HEADERS += 3rdparty/toolwindowmanager/ToolWindowManager.h \
3rdparty/toolwindowmanager/ToolWindowManagerArea.h \
3rdparty/toolwindowmanager/ToolWindowManagerSplitter.h \
3rdparty/toolwindowmanager/ToolWindowManagerTabBar.h \
3rdparty/toolwindowmanager/ToolWindowManagerWrapper.h
# Add FlowLayout
SOURCES += 3rdparty/flowlayout/FlowLayout.cpp
HEADERS += 3rdparty/flowlayout/FlowLayout.h
# Add Scintilla last as it has extra search paths
# Needed for building
DEFINES += SCINTILLA_QT=1 MAKING_LIBRARY=1 SCI_LEXER=1
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/scintilla/src
INCLUDEPATH += $$_PRO_FILE_PWD_/3rdparty/scintilla/lexlib
SOURCES += $$_PRO_FILE_PWD_/3rdparty/scintilla/lexlib/*.cxx \
$$_PRO_FILE_PWD_/3rdparty/scintilla/lexers/*.cxx \
$$_PRO_FILE_PWD_/3rdparty/scintilla/src/*.cxx \
$$_PRO_FILE_PWD_/3rdparty/scintilla/qt/ScintillaEdit/*.cpp \
$$_PRO_FILE_PWD_/3rdparty/scintilla/qt/ScintillaEditBase/*.cpp \
Windows/ShaderViewer.cpp
HEADERS += $$_PRO_FILE_PWD_/3rdparty/scintilla/lexlib/*.h \
$$_PRO_FILE_PWD_/3rdparty/scintilla/src/*.h \
$$_PRO_FILE_PWD_/3rdparty/scintilla/qt/ScintillaEdit/*.h \
$$_PRO_FILE_PWD_/3rdparty/scintilla/qt/ScintillaEditBase/*.h \
Windows/ShaderViewer.h