From b07973049caad9eb1cbea95890a397e1dff95d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 8 Apr 2021 17:49:04 +0200 Subject: [PATCH] Add initial Qt documentation --- .../getting-started-config/native.qt.mdx | 32 ++++++++++++ .../getting-started-install/native.qt.mdx | 50 +++++++++++++++++++ .../getting-started-primer/native.mdx | 4 ++ .../getting-started-primer/native.qt.mdx | 5 ++ src/pages/index.tsx | 1 + src/platforms/native/guides/qt/config.yml | 8 +++ 6 files changed, 100 insertions(+) create mode 100644 src/includes/getting-started-config/native.qt.mdx create mode 100644 src/includes/getting-started-install/native.qt.mdx create mode 100644 src/includes/getting-started-primer/native.qt.mdx create mode 100644 src/platforms/native/guides/qt/config.yml diff --git a/src/includes/getting-started-config/native.qt.mdx b/src/includes/getting-started-config/native.qt.mdx new file mode 100644 index 00000000000000..35d78147fc8149 --- /dev/null +++ b/src/includes/getting-started-config/native.qt.mdx @@ -0,0 +1,32 @@ +```cpp +#include + +#include + +int main(int argc, char *argv[]) +{ + sentry_options_t *options = sentry_options_new(); + sentry_options_set_dsn(options, "___PUBLIC_DSN___"); + sentry_options_set_release(options, "my-project-name@2.3.12"); + sentry_init(options); + + // Make sure everything flushes + auto sentryShutdown = qScopeGuard([] { sentry_shutdown(); }); + + QApplication app(argc, argv); + QWidget widget; + widget.show(); + + return app.exec(); +} +``` + +Alternatively, the DSN can be passed as `SENTRY_DSN` environment variable during runtime. This can be especially useful for server applications. + + + +Calling `sentry_shutdown()` before exiting the application is critical. It +ensures that events can be sent to Sentry before execution stops. Otherwise, +event data may be lost. + + diff --git a/src/includes/getting-started-install/native.qt.mdx b/src/includes/getting-started-install/native.qt.mdx new file mode 100644 index 00000000000000..5f2f4401f72c8d --- /dev/null +++ b/src/includes/getting-started-install/native.qt.mdx @@ -0,0 +1,50 @@ +The Qt integration is part of the [`sentry-native`](https://github.com/getsentry/sentry-native/) SDK, +which currently supports Windows, macOS, Linux, and Android. Both Qt 5 and Qt 6 are supported. + +To build the SDK, download the latest release of the SDK from the [Releases page](https://github.com/getsentry/sentry-native/releases). The SDK is managed as a [CMake] project, which additionally supports several configuration options, such as the backend to use. + +To enable the Qt integration set the `SENTRY_INTEGRATION_QT` option to `YES`. + + + +If the Qt libraries are not installed in one of the predefined `CMake` [system prefix paths](https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_PREFIX_PATH.html), where they can be found by `CMake`, you will need to set [`CMAKE_PREFIX_PATH`](https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html) explicitly. + + + +For example (on macOS): + +```shell +# Configure the cmake build into the `build` directory, +# with crashpad, and Qt integration (on macOS). +cmake -B build \ + -D SENTRY_BACKEND=crashpad \ + -D SENTRY_INTEGRATION_QT=YES \ + --config RelWithDebInfo \ + -S . + +# Build the project +cmake --build build --config RelWithDebInfo --parallel + +# Install the resulting artifacts into a specific prefix +cmake --install build --prefix install + +# Which will result in the following (on macOS): +exa --tree install --level 2 +install +├── bin +│ └── crashpad_handler +├── include +│ └── sentry.h +└── lib + ├── cmake + ├── libsentry.dylib + └── libsentry.dylib.dSYM +``` + +[cmake]: https://cmake.org/cmake/help/latest/ + + + +When using the _Crashpad backend_, which is the default on Windows and macOS, the `crashpad_handler` binary has to be shipped alongside the application binary. See the [Crashpad documentation](/configuration/backends/crashpad/) for more information. + + diff --git a/src/includes/getting-started-primer/native.mdx b/src/includes/getting-started-primer/native.mdx index 411ce0b4738bb8..c3dcd4ba838360 100644 --- a/src/includes/getting-started-primer/native.mdx +++ b/src/includes/getting-started-primer/native.mdx @@ -5,3 +5,7 @@ Sentry also offers higher-level SDKs for platforms with built-in support for nat - [_Android_](/platforms/android/) - [_Apple (Cocoa)_](/platforms/apple/) - [_Electron_](/platforms/electron/) + +Using a framework? Take a look at our specific guides to get started. + +- [_Qt_](/platforms/native/qt/) diff --git a/src/includes/getting-started-primer/native.qt.mdx b/src/includes/getting-started-primer/native.qt.mdx new file mode 100644 index 00000000000000..48e8f3879fc699 --- /dev/null +++ b/src/includes/getting-started-primer/native.qt.mdx @@ -0,0 +1,5 @@ + + +_Sentry's Qt integration enables automatic reporting of errors, exceptions, and log messages._ + + diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 775230cce4b050..7234e927137e99 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -32,6 +32,7 @@ const HIGHLIGHTED_PLATFORMS = [ "java.spring-boot", "ruby.rails", "flutter", + "native.qt" ]; const IndexPage = () => { diff --git a/src/platforms/native/guides/qt/config.yml b/src/platforms/native/guides/qt/config.yml new file mode 100644 index 00000000000000..140cc2a1b733e8 --- /dev/null +++ b/src/platforms/native/guides/qt/config.yml @@ -0,0 +1,8 @@ +title: Qt +description: "Learn how to use Sentry with Qt." +categories: + - desktop + - mobile +redirect_from: + - /platforms/qt/ + - /platforms/native/qt/