mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
Separate Ubuntu .deb packages per Ubuntu release (#4357)
Our .deb packages are now very Ubuntu-specific and are packages based on our CI builds.
This commit is contained in:
parent
cf80ae8434
commit
98c2ff5607
|
@ -57,3 +57,6 @@ exec "$here/usr/bin/chatterino" "$@"' > appdir/AppRun
|
||||||
chmod a+x appdir/AppRun
|
chmod a+x appdir/AppRun
|
||||||
|
|
||||||
./appimagetool-x86_64.AppImage appdir
|
./appimagetool-x86_64.AppImage appdir
|
||||||
|
|
||||||
|
# TODO: Create appimage in a unique directory instead maybe idk?
|
||||||
|
rm -rf appdir
|
||||||
|
|
|
@ -1,6 +1,37 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
breakline() {
|
||||||
|
printf "================================================================================\n\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configured in the CI step
|
||||||
|
install_prefix="appdir/usr"
|
||||||
|
|
||||||
|
# The directory we finally pack into our .deb package
|
||||||
|
packaging_dir="package"
|
||||||
|
|
||||||
|
# Get the Ubuntu Release (e.g. 20.04 or 22.04)
|
||||||
|
ubuntu_release="$(lsb_release -rs)"
|
||||||
|
|
||||||
|
# Refactor opportunity:
|
||||||
|
case "$ubuntu_release" in
|
||||||
|
20.04)
|
||||||
|
dependencies="libc6, libstdc++6, libqt5core5a, libqt5concurrent5, libqt5dbus5, libqt5gui5, libqt5network5, libqt5svg5, libqt5widgets5, qt5-image-formats-plugins, libboost-filesystem1.71.0"
|
||||||
|
;;
|
||||||
|
22.04)
|
||||||
|
dependencies="libc6, libstdc++6, libqt5core5a, libqt5concurrent5, libqt5dbus5, libqt5gui5, libqt5network5, libqt5svg5, libqt5widgets5, qt5-image-formats-plugins, libboost-filesystem1.74.0"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported Ubuntu release $ubuntu_release"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "Building Ubuntu .deb file on '$ubuntu_release'"
|
||||||
|
echo "Dependencies: $dependencies"
|
||||||
|
|
||||||
if [ ! -f ./bin/chatterino ] || [ ! -x ./bin/chatterino ]; then
|
if [ ! -f ./bin/chatterino ] || [ ! -x ./bin/chatterino ]; then
|
||||||
echo "ERROR: No chatterino binary file found. This script must be run in the build folder, and chatterino must be built first."
|
echo "ERROR: No chatterino binary file found. This script must be run in the build folder, and chatterino must be built first."
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -8,33 +39,53 @@ fi
|
||||||
|
|
||||||
chatterino_version=$(git describe 2>/dev/null | cut -c 2-) || true
|
chatterino_version=$(git describe 2>/dev/null | cut -c 2-) || true
|
||||||
if [ -z "$chatterino_version" ]; then
|
if [ -z "$chatterino_version" ]; then
|
||||||
|
# Fall back to this in case the build happened outside of a git repo
|
||||||
chatterino_version="0.0.0-dev"
|
chatterino_version="0.0.0-dev"
|
||||||
echo "Falling back to setting the version to '$chatterino_version'"
|
|
||||||
else
|
|
||||||
echo "Found Chatterino version $chatterino_version via git"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -vrf "./package" || true # delete any old packaging dir
|
# Make sure no old remnants of a previous packaging remains
|
||||||
|
rm -vrf "$packaging_dir"
|
||||||
|
|
||||||
# create ./package/ from scratch
|
mkdir -p "$packaging_dir/DEBIAN"
|
||||||
mkdir package/DEBIAN -p
|
|
||||||
packaging_dir="$(realpath ./package)"
|
|
||||||
|
|
||||||
echo "Making control file"
|
echo "Making control file"
|
||||||
cat >> "$packaging_dir/DEBIAN/control" << EOF
|
cat >> "$packaging_dir/DEBIAN/control" << EOF
|
||||||
Package: chatterino
|
Package: chatterino
|
||||||
Section: net
|
Version: $chatterino_version
|
||||||
Priority: optional
|
|
||||||
Architecture: amd64
|
Architecture: amd64
|
||||||
Maintainer: Mm2PL <mm2pl@kotmisia.pl>
|
Maintainer: Mm2PL <mm2pl@kotmisia.pl>
|
||||||
Description: Testing out chatterino as a Ubuntu package
|
Depends: $dependencies
|
||||||
Depends: libc6, libqt5concurrent5, libqt5core5a, libqt5dbus5, libqt5gui5, libqt5multimedia5, libqt5network5, libqt5svg5, libqt5widgets5, libssl1.1, libstdc++6
|
Section: net
|
||||||
|
Priority: optional
|
||||||
|
Homepage: https://github.com/Chatterino/chatterino2
|
||||||
|
Description: Ubuntu package built for $ubuntu_release
|
||||||
EOF
|
EOF
|
||||||
echo "Version: $chatterino_version" >> "$packaging_dir/DEBIAN/control"
|
cat "$packaging_dir/DEBIAN/control"
|
||||||
|
breakline
|
||||||
|
|
||||||
echo "Running make install in package dir"
|
|
||||||
DESTDIR="$packaging_dir" make INSTALL_ROOT="$packaging_dir" -j"$(nproc)" install; find "$packaging_dir/"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
echo "Building package..."
|
echo "Running make install"
|
||||||
|
make install
|
||||||
|
find "$install_prefix"
|
||||||
|
breakline
|
||||||
|
|
||||||
|
|
||||||
|
echo "Merge install into packaging dir"
|
||||||
|
cp -rv "$install_prefix/" "$packaging_dir/"
|
||||||
|
find "$packaging_dir"
|
||||||
|
breakline
|
||||||
|
|
||||||
|
|
||||||
|
echo "Building package"
|
||||||
dpkg-deb --build "$packaging_dir" "Chatterino-x86_64.deb"
|
dpkg-deb --build "$packaging_dir" "Chatterino-x86_64.deb"
|
||||||
|
breakline
|
||||||
|
|
||||||
|
|
||||||
|
echo "Package info"
|
||||||
|
dpkg --info Chatterino-x86_64.deb
|
||||||
|
breakline
|
||||||
|
|
||||||
|
|
||||||
|
echo "Package contents"
|
||||||
|
dpkg --contents Chatterino-x86_64.deb # Shows folders and files inside .deb file
|
||||||
|
breakline
|
||||||
|
|
54
.docker/Dockerfile-ubuntu-20.04-build
Normal file
54
.docker/Dockerfile-ubuntu-20.04-build
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
FROM ubuntu:20.04
|
||||||
|
|
||||||
|
ENV TZ=UTC
|
||||||
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get -y install --no-install-recommends \
|
||||||
|
cmake \
|
||||||
|
virtualenv \
|
||||||
|
rapidjson-dev \
|
||||||
|
libfuse2 \
|
||||||
|
libssl-dev \
|
||||||
|
libboost-dev \
|
||||||
|
libxcb-randr0-dev \
|
||||||
|
libboost-system-dev \
|
||||||
|
libboost-filesystem-dev \
|
||||||
|
libpulse-dev \
|
||||||
|
libxkbcommon-x11-0 \
|
||||||
|
build-essential \
|
||||||
|
libgl1-mesa-dev \
|
||||||
|
libxcb-icccm4 \
|
||||||
|
libxcb-image0 \
|
||||||
|
libxcb-keysyms1 \
|
||||||
|
libxcb-render-util0 \
|
||||||
|
libxcb-xinerama0
|
||||||
|
|
||||||
|
RUN apt-get -y install \
|
||||||
|
git \
|
||||||
|
lsb-release \
|
||||||
|
python3-pip && \
|
||||||
|
apt-get clean all
|
||||||
|
|
||||||
|
# Install Qt as we do in CI
|
||||||
|
|
||||||
|
RUN pip3 install -U pip && \
|
||||||
|
pip3 install aqtinstall && \
|
||||||
|
aqt install-qt linux desktop 5.12.12 && \
|
||||||
|
mkdir -p /opt/qt512 && \
|
||||||
|
mv /5.12.12/gcc_64/* /opt/qt512
|
||||||
|
|
||||||
|
ADD . /src
|
||||||
|
|
||||||
|
RUN mkdir /src/build
|
||||||
|
|
||||||
|
# cmake
|
||||||
|
RUN cd /src/build && \
|
||||||
|
CXXFLAGS=-fno-sized-deallocation cmake \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=appdir/usr/ \
|
||||||
|
-DCMAKE_PREFIX_PATH=/opt/qt512/lib/cmake \
|
||||||
|
-DBUILD_WITH_QTKEYCHAIN=OFF \
|
||||||
|
..
|
||||||
|
|
||||||
|
# build
|
||||||
|
RUN cd /src/build && \
|
||||||
|
make -j8
|
13
.docker/Dockerfile-ubuntu-20.04-package
Normal file
13
.docker/Dockerfile-ubuntu-20.04-package
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
FROM chatterino-ubuntu-20.04-build
|
||||||
|
|
||||||
|
ADD .CI /src/.CI
|
||||||
|
|
||||||
|
WORKDIR /src/build
|
||||||
|
|
||||||
|
# RUN apt-get install -y wget
|
||||||
|
|
||||||
|
# create appimage
|
||||||
|
# RUN pwd && ./../.CI/CreateAppImage.sh
|
||||||
|
|
||||||
|
# package deb
|
||||||
|
RUN pwd && ./../.CI/CreateUbuntuDeb.sh
|
57
.docker/Dockerfile-ubuntu-22.04-build
Normal file
57
.docker/Dockerfile-ubuntu-22.04-build
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
FROM ubuntu:22.04
|
||||||
|
|
||||||
|
ENV TZ=UTC
|
||||||
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get -y install --no-install-recommends \
|
||||||
|
cmake \
|
||||||
|
virtualenv \
|
||||||
|
rapidjson-dev \
|
||||||
|
libfuse2 \
|
||||||
|
libssl-dev \
|
||||||
|
libboost-dev \
|
||||||
|
libxcb-randr0-dev \
|
||||||
|
libboost-system-dev \
|
||||||
|
libboost-filesystem-dev \
|
||||||
|
libpulse-dev \
|
||||||
|
libxkbcommon-x11-0 \
|
||||||
|
build-essential \
|
||||||
|
libgl1-mesa-dev \
|
||||||
|
libxcb-icccm4 \
|
||||||
|
libxcb-image0 \
|
||||||
|
libxcb-keysyms1 \
|
||||||
|
libxcb-render-util0 \
|
||||||
|
libxcb-xinerama0
|
||||||
|
|
||||||
|
RUN apt-get -y install \
|
||||||
|
git \
|
||||||
|
lsb-release \
|
||||||
|
python3-pip && \
|
||||||
|
apt-get clean all
|
||||||
|
|
||||||
|
# Install Qt as we do in CI
|
||||||
|
|
||||||
|
RUN pip3 install -U pip && \
|
||||||
|
pip3 install aqtinstall && \
|
||||||
|
aqt install-qt linux desktop 5.15.2 && \
|
||||||
|
mkdir -p /opt/qt515 && \
|
||||||
|
mv /5.15.2/gcc_64/* /opt/qt515
|
||||||
|
|
||||||
|
ADD . /src
|
||||||
|
|
||||||
|
RUN mkdir /src/build
|
||||||
|
|
||||||
|
# Apply Qt patches
|
||||||
|
RUN patch "/opt/qt515/include/QtConcurrent/qtconcurrentthreadengine.h" /src/.patches/qt5-on-newer-gcc.patch
|
||||||
|
|
||||||
|
# cmake
|
||||||
|
RUN cd /src/build && \
|
||||||
|
CXXFLAGS=-fno-sized-deallocation cmake \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=appdir/usr/ \
|
||||||
|
-DCMAKE_PREFIX_PATH=/opt/qt515/lib/cmake \
|
||||||
|
-DBUILD_WITH_QTKEYCHAIN=OFF \
|
||||||
|
..
|
||||||
|
|
||||||
|
# build
|
||||||
|
RUN cd /src/build && \
|
||||||
|
make -j8
|
8
.docker/Dockerfile-ubuntu-22.04-package
Normal file
8
.docker/Dockerfile-ubuntu-22.04-package
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
FROM chatterino-ubuntu-22.04-build
|
||||||
|
|
||||||
|
ADD .CI /src/.CI
|
||||||
|
|
||||||
|
WORKDIR /src/build
|
||||||
|
|
||||||
|
# package deb
|
||||||
|
RUN ./../.CI/CreateUbuntuDeb.sh
|
29
.docker/README.md
Normal file
29
.docker/README.md
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
## Groups
|
||||||
|
|
||||||
|
### Ubuntu 20.04 package
|
||||||
|
|
||||||
|
`Dockerfile-ubuntu-20.04-package` relies on `Dockerfile-ubuntu-20.04-build`
|
||||||
|
|
||||||
|
To build, from the repo root
|
||||||
|
|
||||||
|
1. Build a docker image that contains all the build artifacts and source from building Chatterino on Ubuntu 20.04
|
||||||
|
`docker build -t chatterino-ubuntu-20.04-build -f .docker/Dockerfile-ubuntu-20.04-build .`
|
||||||
|
1. Build a docker image that uses the above-built image & packages it into a .deb file
|
||||||
|
`docker build -t chatterino-ubuntu-20.04-package -f .docker/Dockerfile-ubuntu-20.04-package .`
|
||||||
|
|
||||||
|
To extract the final package, you can run the following command:
|
||||||
|
`docker run -v $PWD:/opt/mount --rm -it chatterino-ubuntu-20.04-package bash -c "cp /src/build/Chatterino-x86_64.deb /opt/mount/"`
|
||||||
|
|
||||||
|
### Ubuntu 22.04 package
|
||||||
|
|
||||||
|
`Dockerfile-ubuntu-22.04-package` relies on `Dockerfile-ubuntu-22.04-build`
|
||||||
|
|
||||||
|
To build, from the repo root
|
||||||
|
|
||||||
|
1. Build a docker image that contains all the build artifacts and source from building Chatterino on Ubuntu 22.04
|
||||||
|
`docker build -t chatterino-ubuntu-22.04-build -f .docker/Dockerfile-ubuntu-22.04-build .`
|
||||||
|
1. Build a docker image that uses the above-built image & packages it into a .deb file
|
||||||
|
`docker build -t chatterino-ubuntu-22.04-package -f .docker/Dockerfile-ubuntu-22.04-package .`
|
||||||
|
|
||||||
|
To extract the final package, you can run the following command:
|
||||||
|
`docker run -v $PWD:/opt/mount --rm -it chatterino-ubuntu-22.04-package bash -c "cp /src/build/Chatterino-x86_64.deb /opt/mount/"`
|
4
.dockerignore
Normal file
4
.dockerignore
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
build*
|
||||||
|
.mypy_cache
|
||||||
|
.cache
|
||||||
|
.docker
|
41
.github/workflows/build.yml
vendored
41
.github/workflows/build.yml
vendored
|
@ -17,18 +17,32 @@ env:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
name: "Build ${{ matrix.os }}, Qt ${{ matrix.qt-version }} (PCH:${{ matrix.pch }}, LTO:${{ matrix.force-lto }})"
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [windows-latest, ubuntu-20.04, macos-latest]
|
os: [windows-latest, macos-latest]
|
||||||
qt-version: [5.15.2, 5.12.12]
|
qt-version: [5.15.2, 5.12.12]
|
||||||
pch: [true]
|
pch: [true]
|
||||||
force-lto: [false]
|
force-lto: [false]
|
||||||
|
skip_artifact: ["no"]
|
||||||
include:
|
include:
|
||||||
|
# Ubuntu 20.04, Qt 5.12
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-20.04
|
||||||
|
qt-version: 5.12.12
|
||||||
|
pch: true
|
||||||
|
force-lto: false
|
||||||
|
# Ubuntu 22.04, Qt 5.15
|
||||||
|
- os: ubuntu-22.04
|
||||||
|
qt-version: 5.15.2
|
||||||
|
pch: true
|
||||||
|
force-lto: false
|
||||||
|
# Test for disabling Precompiled Headers & enabling link-time optimization
|
||||||
|
- os: ubuntu-22.04
|
||||||
qt-version: 5.15.2
|
qt-version: 5.15.2
|
||||||
pch: false
|
pch: false
|
||||||
force-lto: true
|
force-lto: true
|
||||||
|
skip_artifact: "yes"
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
@ -147,12 +161,18 @@ jobs:
|
||||||
libxcb-render-util0 \
|
libxcb-render-util0 \
|
||||||
libxcb-xinerama0
|
libxcb-xinerama0
|
||||||
|
|
||||||
|
- name: Apply Qt patches (Ubuntu)
|
||||||
|
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.qt-version, '5.')
|
||||||
|
run: |
|
||||||
|
patch "$Qt5_DIR/include/QtConcurrent/qtconcurrentthreadengine.h" .patches/qt5-on-newer-gcc.patch
|
||||||
|
shell: bash
|
||||||
|
|
||||||
- name: Build (Ubuntu)
|
- name: Build (Ubuntu)
|
||||||
if: startsWith(matrix.os, 'ubuntu')
|
if: startsWith(matrix.os, 'ubuntu')
|
||||||
run: |
|
run: |
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake \
|
CXXFLAGS=-fno-sized-deallocation cmake \
|
||||||
-DCMAKE_INSTALL_PREFIX=appdir/usr/ \
|
-DCMAKE_INSTALL_PREFIX=appdir/usr/ \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DPAJLADA_SETTINGS_USE_BOOST_FILESYSTEM=On \
|
-DPAJLADA_SETTINGS_USE_BOOST_FILESYSTEM=On \
|
||||||
|
@ -182,31 +202,31 @@ jobs:
|
||||||
clang-tidy-review-metadata.json
|
clang-tidy-review-metadata.json
|
||||||
|
|
||||||
- name: Package - AppImage (Ubuntu)
|
- name: Package - AppImage (Ubuntu)
|
||||||
if: startsWith(matrix.os, 'ubuntu')
|
if: startsWith(matrix.os, 'ubuntu') && matrix.skip_artifact != 'yes'
|
||||||
run: |
|
run: |
|
||||||
cd build
|
cd build
|
||||||
sh ./../.CI/CreateAppImage.sh
|
sh ./../.CI/CreateAppImage.sh
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Package - .deb (Ubuntu)
|
- name: Package - .deb (Ubuntu)
|
||||||
if: startsWith(matrix.os, 'ubuntu')
|
if: startsWith(matrix.os, 'ubuntu') && matrix.skip_artifact != 'yes'
|
||||||
run: |
|
run: |
|
||||||
cd build
|
cd build
|
||||||
sh ./../.CI/CreateUbuntuDeb.sh
|
sh ./../.CI/CreateUbuntuDeb.sh
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Upload artifact - AppImage (Ubuntu)
|
- name: Upload artifact - AppImage (Ubuntu)
|
||||||
if: startsWith(matrix.os, 'ubuntu')
|
if: startsWith(matrix.os, 'ubuntu') && matrix.skip_artifact != 'yes'
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: Chatterino-x86_64-${{ matrix.qt-version }}.AppImage
|
name: Chatterino-x86_64-${{ matrix.qt-version }}.AppImage
|
||||||
path: build/Chatterino-x86_64.AppImage
|
path: build/Chatterino-x86_64.AppImage
|
||||||
|
|
||||||
- name: Upload artifact - .deb (Ubuntu)
|
- name: Upload artifact - .deb (Ubuntu)
|
||||||
if: startsWith(matrix.os, 'ubuntu')
|
if: startsWith(matrix.os, 'ubuntu') && matrix.skip_artifact != 'yes'
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: Chatterino-${{ matrix.qt-version }}.deb
|
name: Chatterino-${{ matrix.os }}-Qt-${{ matrix.qt-version }}.deb
|
||||||
path: build/Chatterino-x86_64.deb
|
path: build/Chatterino-x86_64.deb
|
||||||
|
|
||||||
# MACOS
|
# MACOS
|
||||||
|
@ -266,7 +286,12 @@ jobs:
|
||||||
|
|
||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: Chatterino-5.15.2.deb
|
name: Chatterino-ubuntu-20.04.deb
|
||||||
|
path: release-artifacts/
|
||||||
|
|
||||||
|
- uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: Chatterino-ubuntu-22.04.deb
|
||||||
path: release-artifacts/
|
path: release-artifacts/
|
||||||
|
|
||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v3
|
||||||
|
|
20
.patches/qt5-on-newer-gcc.patch
Normal file
20
.patches/qt5-on-newer-gcc.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
This patch ensures Qt 5.15 in particular can build with modern compilers
|
||||||
|
|
||||||
|
See https://bugreports.qt.io/browse/QTBUG-91909 and https://codereview.qt-project.org/c/qt/qtbase/+/339417
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/src/concurrent/qtconcurrentthreadengine.h b/src/concurrent/qtconcurrentthreadengine.h
|
||||||
|
index cbd8ad04..4cd5b85 100644
|
||||||
|
--- a/src/concurrent/qtconcurrentthreadengine.h
|
||||||
|
+++ b/src/concurrent/qtconcurrentthreadengine.h
|
||||||
|
@@ -256,8 +256,8 @@
|
||||||
|
class ThreadEngineStarter<void> : public ThreadEngineStarterBase<void>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
- ThreadEngineStarter<void>(ThreadEngine<void> *_threadEngine)
|
||||||
|
- :ThreadEngineStarterBase<void>(_threadEngine) {}
|
||||||
|
+ ThreadEngineStarter(ThreadEngine<void> *_threadEngine)
|
||||||
|
+ : ThreadEngineStarterBase<void>(_threadEngine) {}
|
||||||
|
|
||||||
|
void startBlocking()
|
||||||
|
{
|
Loading…
Reference in a new issue