Breakpad implementation (#535)
* qBreakpad simple implementation * update chatterino.pro for linux * Add breakpad building script for linux
This commit is contained in:
@@ -17,3 +17,6 @@
|
||||
path = lib/websocketpp
|
||||
url = https://github.com/zaphoyd/websocketpp.git
|
||||
branch = develop
|
||||
[submodule "lib/qBreakpad"]
|
||||
path = lib/qBreakpad
|
||||
url = https://github.com/jiakuan/qBreakpad.git
|
||||
|
||||
@@ -32,6 +32,11 @@
|
||||
2. Under Tools:
|
||||
- Select Qt Creator, and Qt Creator CDB Debugger Support
|
||||
|
||||
### Compile with Breakpad support (Optional)
|
||||
1. Open up lib/qBreakpad/handler/handler.pro
|
||||
2. Build it in whichever mode you wanna build Chatterino (Debug/Profile/Release)
|
||||
3. Copy the newly built qBreakpad.lib to a folder you create: `lib/qBreakpad/build/handler`
|
||||
|
||||
# Windows (Using MSYS2, not recommended)
|
||||
Note: This guide is currently out of date and will not work as is.
|
||||
Note: This build will have some features missing from the build.
|
||||
|
||||
+7
-1
@@ -17,6 +17,12 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
||||
PRECOMPILED_HEADER = src/PrecompiledHeader.hpp
|
||||
CONFIG += precompile_header
|
||||
|
||||
useBreakpad {
|
||||
LIBS += -L$$PWD/lib/qBreakpad/handler/build
|
||||
include(lib/qBreakpad/qBreakpad.pri)
|
||||
DEFINES += CHATTERINO_USE_BREAKPAD
|
||||
}
|
||||
|
||||
# https://bugreports.qt.io/browse/QTBUG-27018
|
||||
equals(QMAKE_CXX, "clang++")|equals(QMAKE_CXX, "g++") {
|
||||
TARGET = bin/chatterino
|
||||
@@ -444,4 +450,4 @@ win32-msvc* {
|
||||
|
||||
linux {
|
||||
QMAKE_LFLAGS += -lrt
|
||||
}
|
||||
}
|
||||
Submodule
+1
Submodule lib/qBreakpad added at a4626c12e9
@@ -23,6 +23,10 @@
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
#ifdef CHATTERINO_USE_BREAKPAD
|
||||
#include <QBreakpadHandler.h>
|
||||
#endif
|
||||
|
||||
int runGui(QApplication &a, int argc, char *argv[]);
|
||||
void runNativeMessagingHost();
|
||||
void installCustomPalette();
|
||||
@@ -83,6 +87,10 @@ int runGui(QApplication &a, int argc, char *argv[])
|
||||
|
||||
app->construct();
|
||||
|
||||
#ifdef CHATTERINO_USE_BREAKPAD
|
||||
QBreakpadInstance.setDumpPath(app->paths->settingsFolderPath + "/Crashes");
|
||||
#endif
|
||||
|
||||
auto &pathMan = *app->paths;
|
||||
// Running file
|
||||
auto runningPath = pathMan.miscDirectory + "/running_" + pathMan.applicationFilePathHash;
|
||||
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
cd ../lib/qBreakpad
|
||||
|
||||
echo "Updating qBreakpad's breakpad dependency version"
|
||||
cd third_party/breakpad
|
||||
git checkout 7b3afa9258e58a57ffbeb395d445811f92616ae9
|
||||
cd ../../
|
||||
|
||||
cd handler
|
||||
mkdir build
|
||||
cd build
|
||||
qmake ..
|
||||
echo "Building handler"
|
||||
make -j8 && "Successfully built qBreakpad"
|
||||
Reference in New Issue
Block a user