Skip to content

Commit

Permalink
Add initial Qt documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
torarnv committed Apr 8, 2021
1 parent a4ac19a commit a5bc9d1
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 0 deletions.
32 changes: 32 additions & 0 deletions src/includes/getting-started-config/native.qt.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
```cpp
#include <QApplication>

#include <sentry.h>

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.
<Alert level="warning" title="Warning">
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.
</Alert>
50 changes: 50 additions & 0 deletions src/includes/getting-started-install/native.qt.mdx
Original file line number Diff line number Diff line change
@@ -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`.

<Note>

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.

</Note>

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/

<Alert level="warning" title="Bundling crashpad_handler">

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.

</Alert>
4 changes: 4 additions & 0 deletions src/includes/getting-started-primer/native.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@ Sentry also offers higher-level SDKs for platforms with built-in support for nat
- <PlatformLink platform="android" icon="true" />
- <PlatformLink platform="apple" icon="true" />
- <PlatformLink platform="electron" icon="true" />

Using a framework? Take a look at our specific guides to get started.

- <PlatformLink platform="native.qt" icon="true" />
5 changes: 5 additions & 0 deletions src/includes/getting-started-primer/native.qt.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<Note>

_Sentry's Qt integration enables automatic reporting of errors, exceptions, and log messages._

</Note>
1 change: 1 addition & 0 deletions src/pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ const HIGHLIGHTED_PLATFORMS = [
"java.spring-boot",
"ruby.rails",
"flutter",
"native.qt"
];

const IndexPage = () => {
Expand Down
8 changes: 8 additions & 0 deletions src/platforms/native/guides/qt/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
title: Qt
description: "Learn how to use Sentry with Qt."
categories:
- desktop
- mobile
redirect_from:
- /platforms/qt/
- /platforms/native/qt/

0 comments on commit a5bc9d1

Please sign in to comment.