Release plugins alpha (#5288)

This commit is contained in:
Mm2PL 2024-05-06 17:03:17 +02:00 committed by GitHub
parent a43c4f371b
commit 321d881bfe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 25 additions and 7 deletions

View file

@ -115,21 +115,21 @@ jobs:
- os: macos-13
qt-version: 5.15.2
force-lto: false
plugins: false
plugins: true
skip-artifact: false
skip-crashpad: false
# Windows
- os: windows-latest
qt-version: 6.5.0
force-lto: false
plugins: false
plugins: true
skip-artifact: false
skip-crashpad: false
# Windows 7/8
- os: windows-latest
qt-version: 5.15.2
force-lto: false
plugins: false
plugins: true
skip-artifact: false
skip-crashpad: true

View file

@ -15,7 +15,7 @@ FreeBSD 13.0-CURRENT.
mkdir build
cd build
```
1. Generate build files
1. Generate build files. To enable Lua plugins in your build add `-DCHATTERINO_PLUGINS=ON` to this command.
```sh
cmake ..
```

View file

@ -51,7 +51,7 @@ nix-shell -p openssl boost qt6.full pkg-config cmake
mkdir build
cd build
```
1. Generate build files
1. Generate build files. To enable Lua plugins in your build add `-DCHATTERINO_PLUGINS=ON` to this command.
```sh
cmake -DBUILD_WITH_QT6=ON -DBUILD_WITH_QTKEYCHAIN=OFF ..
```

View file

@ -20,7 +20,7 @@ Local dev machines for testing are available on Apple Silicon on macOS 13.
1. Go to the project directory where you cloned Chatterino2 & its submodules
1. Create a build directory and go into it:
`mkdir build && cd build`
1. Run CMake:
1. Run CMake. To enable Lua plugins in your build add `-DCHATTERINO_PLUGINS=ON` to this command.
`cmake -DCMAKE_PREFIX_PATH=/opt/homebrew/opt/qt@5 -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl@1.1 ..`
1. Build:
`make`

View file

@ -118,6 +118,7 @@ nmake
```
To build a debug build, you'll also need to add the `-s compiler.runtime_type=Debug` flag to the `conan install` invocation. See [this StackOverflow post](https://stackoverflow.com/questions/59828611/windeployqt-doesnt-deploy-qwindowsd-dll-for-a-debug-application/75607313#75607313)
To build with plugins add `-DCHATTERINO_PLUGINS=ON` to `cmake` command.
#### Deploying Qt libraries

View file

@ -50,4 +50,5 @@ This will require more than 30GB of free space on your hard drive.
cmake --build . --parallel <threads> --config Release
```
When using CMD, use `-DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake` to specify the toolchain.
To build with plugins add `-DCHATTERINO_PLUGINS=ON` to `cmake -B build` command.
1. Run `.\bin\chatterino2.exe`

View file

@ -2,6 +2,7 @@
## Unversioned
- Major: Release plugins alpha. (#5288)
- Bugfix: If a network request errors with 200 OK, Qt's error code is now reported instead of the HTTP status. (#5378)
- Dev: Add doxygen build target. (#5377)
- Dev: Make printing of strings in tests easier. (#5379)

View file

@ -28,7 +28,7 @@ option(CHATTERINO_GENERATE_COVERAGE "Generate coverage files" OFF)
option(BUILD_TRANSLATIONS "" OFF)
option(BUILD_SHARED_LIBS "" OFF)
option(CHATTERINO_LTO "Enable LTO for all targets" OFF)
option(CHATTERINO_PLUGINS "Enable EXPERIMENTAL plugin support in Chatterino" OFF)
option(CHATTERINO_PLUGINS "Enable ALPHA plugin support in Chatterino" OFF)
option(CHATTERINO_UPDATER "Enable update checks" ON)
mark_as_advanced(CHATTERINO_UPDATER)

View file

@ -37,6 +37,21 @@ PluginsPage::PluginsPage()
auto group = layout.emplace<QGroupBox>("General plugin settings");
this->generalGroup = group.getElement();
auto groupLayout = group.setLayoutType<QFormLayout>();
auto *scaryLabel = new QLabel(
"Plugins can expand functionality of "
"Chatterino. They can be made in Lua. This functionality is "
"still in public alpha stage. Use ONLY the plugins you trust. "
"The permission system is best effort, always "
"assume plugins can bypass permissions and can execute "
"arbitrary code. To see how to create plugins " +
formatRichNamedLink("https://github.com/Chatterino/chatterino2/"
"blob/master/docs/wip-plugins.md",
"look at the manual") +
".");
scaryLabel->setWordWrap(true);
scaryLabel->setOpenExternalLinks(true);
groupLayout->addRow(scaryLabel);
auto *description =
new QLabel("You can load plugins by putting them into " +
formatRichNamedLink(