diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e3cc51292..6015ef653 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,65 +22,68 @@ env: jobs: build: - name: "Build ${{ matrix.os }}, Qt ${{ matrix.qt-version }} (PCH:${{ matrix.pch }}, LTO:${{ matrix.force-lto }})" + name: "Build ${{ matrix.os }}, Qt ${{ matrix.qt-version }} (LTO:${{ matrix.force-lto }}, crashpad:${{ matrix.skip-crashpad && 'off' || 'on' }})" runs-on: ${{ matrix.os }} strategy: matrix: os: [windows-latest, macos-latest] qt-version: [5.15.2, 6.5.0] - pch: [true] force-lto: [false] plugins: [false] - skip_artifact: ["no"] - crashpad: [true] + skip-artifact: [false] + skip-crashpad: [false] + clang-tidy-review: [false] include: # Ubuntu 20.04, Qt 5.12 - os: ubuntu-20.04 qt-version: 5.12.12 - pch: true force-lto: false + plugins: false + skip-artifact: false + skip-crashpad: false + clang-tidy-review: false # Ubuntu 22.04, Qt 5.15 - os: ubuntu-22.04 qt-version: 5.15.2 - pch: true force-lto: false - # Ubuntu 22.04, Qt 6.2.4 + plugins: false + skip-artifact: false + skip-crashpad: false + clang-tidy-review: true + # Ubuntu 22.04, Qt 6.2.4 - tests LTO & plugins - os: ubuntu-22.04 qt-version: 6.2.4 - pch: false - force-lto: false - # Test for disabling Precompiled Headers & enabling link-time optimization and plugins - - os: ubuntu-22.04 - qt-version: 5.15.2 - pch: false force-lto: true - skip_artifact: "yes" plugins: true + skip-artifact: false + skip-crashpad: false + clang-tidy-review: false # Test for disabling crashpad on Windows - os: windows-latest qt-version: 5.15.2 - pch: false - force-lto: true - skip_artifact: "yes" - crashpad: false + force-lto: false + plugins: false + skip-artifact: true + skip-crashpad: true + clang-tidy-review: false fail-fast: false steps: - name: Force LTO - if: matrix.force-lto == true + if: matrix.force-lto run: | echo "C2_ENABLE_LTO=ON" >> "$GITHUB_ENV" shell: bash - name: Enable plugin support - if: matrix.plugins == true + if: matrix.plugins run: | echo "C2_PLUGINS=ON" >> "$GITHUB_ENV" shell: bash - name: Set Crashpad - if: matrix.crashpad == true + if: matrix.skip-crashpad == false run: | echo "C2_ENABLE_CRASHPAD=ON" >> "$GITHUB_ENV" shell: bash @@ -167,13 +170,14 @@ jobs: - name: Build (Windows) if: startsWith(matrix.os, 'windows') + shell: pwsh run: | cd build cmake ` -G"NMake Makefiles" ` -DCMAKE_BUILD_TYPE=RelWithDebInfo ` -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" ` - -DUSE_PRECOMPILED_HEADERS=${{ matrix.pch }} ` + -DUSE_PRECOMPILED_HEADERS=OFF ` -DBUILD_WITH_CRASHPAD="$Env:C2_ENABLE_CRASHPAD" ` -DCHATTERINO_LTO="$Env:C2_ENABLE_LTO" ` -DCHATTERINO_PLUGINS="$Env:C2_PLUGINS" ` @@ -183,7 +187,8 @@ jobs: nmake /S /NOLOGO - name: Build crashpad (Windows) - if: startsWith(matrix.os, 'windows') && matrix.crashpad + if: startsWith(matrix.os, 'windows') && !matrix.skip-crashpad + shell: pwsh run: | cd build set cl=/MP @@ -202,14 +207,14 @@ jobs: 7z a chatterino-windows-x86-64-Qt-${{ matrix.qt-version }}.zip Chatterino2/ - name: Upload artifact (Windows - binary) - if: startsWith(matrix.os, 'windows') && matrix.skip_artifact != 'yes' + if: startsWith(matrix.os, 'windows') && !matrix.skip-artifact uses: actions/upload-artifact@v3 with: name: chatterino-windows-x86-64-Qt-${{ matrix.qt-version }}.zip path: build/chatterino-windows-x86-64-Qt-${{ matrix.qt-version }}.zip - name: Upload artifact (Windows - symbols) - if: startsWith(matrix.os, 'windows') && matrix.skip_artifact != 'yes' + if: startsWith(matrix.os, 'windows') && !matrix.skip-artifact uses: actions/upload-artifact@v3 with: name: chatterino-windows-x86-64-Qt-${{ matrix.qt-version }}-symbols.pdb.7z @@ -260,7 +265,7 @@ jobs: -DCMAKE_INSTALL_PREFIX=appdir/usr/ \ -DCMAKE_BUILD_TYPE=Release \ -DPAJLADA_SETTINGS_USE_BOOST_FILESYSTEM=On \ - -DUSE_PRECOMPILED_HEADERS=${{ matrix.pch }} \ + -DUSE_PRECOMPILED_HEADERS=OFF \ -DCMAKE_EXPORT_COMPILE_COMMANDS=On \ -DCHATTERINO_LTO="$C2_ENABLE_LTO" \ -DCHATTERINO_PLUGINS="$C2_PLUGINS" \ @@ -270,7 +275,7 @@ jobs: shell: bash - name: clang-tidy review - if: (startsWith(matrix.os, 'ubuntu') && matrix.pch == false && matrix.qt-version == '5.15.2' && github.event_name == 'pull_request') + if: matrix.clang-tidy-review uses: ZedThree/clang-tidy-review@v0.13.0 with: build_dir: build @@ -279,32 +284,32 @@ jobs: exclude: "tests/*,lib/*" - name: clang-tidy-review upload - if: (startsWith(matrix.os, 'ubuntu') && matrix.pch == false && matrix.qt-version == '5.15.2' && github.event_name == 'pull_request') + if: matrix.clang-tidy-review uses: ZedThree/clang-tidy-review/upload@v0.13.0 - name: Package - AppImage (Ubuntu) - if: startsWith(matrix.os, 'ubuntu-20.04') && matrix.skip_artifact != 'yes' + if: startsWith(matrix.os, 'ubuntu-20.04') && !matrix.skip-artifact run: | cd build sh ./../.CI/CreateAppImage.sh shell: bash - name: Package - .deb (Ubuntu) - if: startsWith(matrix.os, 'ubuntu') && matrix.skip_artifact != 'yes' + if: startsWith(matrix.os, 'ubuntu') && !matrix.skip-artifact run: | cd build sh ./../.CI/CreateUbuntuDeb.sh shell: bash - name: Upload artifact - AppImage (Ubuntu) - if: startsWith(matrix.os, 'ubuntu-20.04') && matrix.skip_artifact != 'yes' + if: startsWith(matrix.os, 'ubuntu-20.04') && !matrix.skip-artifact uses: actions/upload-artifact@v3 with: name: Chatterino-x86_64-${{ matrix.qt-version }}.AppImage path: build/Chatterino-x86_64.AppImage - name: Upload artifact - .deb (Ubuntu) - if: startsWith(matrix.os, 'ubuntu') && matrix.skip_artifact != 'yes' + if: startsWith(matrix.os, 'ubuntu') && !matrix.skip-artifact uses: actions/upload-artifact@v3 with: name: Chatterino-${{ matrix.os }}-Qt-${{ matrix.qt-version }}.deb @@ -326,7 +331,7 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \ -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl \ - -DUSE_PRECOMPILED_HEADERS=${{ matrix.pch }} \ + -DUSE_PRECOMPILED_HEADERS=OFF \ -DCHATTERINO_LTO="$C2_ENABLE_LTO" \ -DCHATTERINO_PLUGINS="$C2_PLUGINS" \ -DBUILD_WITH_QT6="$C2_BUILD_WITH_QT6" \ @@ -363,12 +368,6 @@ jobs: with: fetch-depth: 0 # allows for tags access - - uses: actions/download-artifact@v3 - name: macOS x86_64 Qt6.5.0 dmg - with: - name: chatterino-macos-Qt-6.5.0.dmg - path: release-artifacts/ - - uses: actions/download-artifact@v3 name: Ubuntu 22.04 Qt6.2.4 deb with: @@ -387,17 +386,6 @@ jobs: name: chatterino-windows-x86-64-Qt-6.5.0-symbols.pdb.7z path: release-artifacts/ - - name: Mark experimental - run: | - ls -l - # Mark all Qt6 builds as EXPERIMENTAL - mv chatterino-macos-Qt-6.5.0.dmg EXPERIMENTAL-chatterino-macos-Qt-6.5.0.dmg - mv Chatterino-ubuntu-22.04-x86_64.deb EXPERIMENTAL-Chatterino-ubuntu-22.04-Qt-6.2.4.deb - mv chatterino-windows-x86-64-Qt-6.5.0.zip EXPERIMENTAL-chatterino-windows-x86-64-Qt-6.5.0.zip - mv chatterino-Qt-6.5.0.pdb.7z EXPERIMENTAL-chatterino-Qt-6.5.0.pdb.7z - working-directory: release-artifacts - shell: bash - - uses: actions/download-artifact@v3 name: Windows Qt5.15.2 with: @@ -439,6 +427,19 @@ jobs: cp .CI/chatterino-nightly.flatpakref release-artifacts/ shell: bash + - name: Rename artifacts + run: | + ls -l + # Rename the macos build to indicate that it's for macOS 10.15 users + mv chatterino-macos-Qt-5.15.2.dmg Chatterino-macOS-10.15.dmg + + # Mark all Qt6 builds as EXPERIMENTAL + mv Chatterino-ubuntu-22.04-x86_64.deb EXPERIMENTAL-Chatterino-ubuntu-22.04-Qt-6.2.4.deb + mv chatterino-windows-x86-64-Qt-6.5.0.zip EXPERIMENTAL-chatterino-windows-x86-64-Qt-6.5.0.zip + mv chatterino-Qt-6.5.0.pdb.7z EXPERIMENTAL-chatterino-Qt-6.5.0.pdb.7z + working-directory: release-artifacts + shell: bash + - name: Create release uses: ncipollo/release-action@v1.12.0 with: diff --git a/src/providers/seventv/SeventvBadges.hpp b/src/providers/seventv/SeventvBadges.hpp index 182d37b10..98725d179 100644 --- a/src/providers/seventv/SeventvBadges.hpp +++ b/src/providers/seventv/SeventvBadges.hpp @@ -9,6 +9,7 @@ #include #include #include +#include namespace chatterino { diff --git a/src/providers/twitch/TwitchAccount.hpp b/src/providers/twitch/TwitchAccount.hpp index bfb8b98ca..7e4b69d2e 100644 --- a/src/providers/twitch/TwitchAccount.hpp +++ b/src/providers/twitch/TwitchAccount.hpp @@ -15,6 +15,7 @@ #include #include #include +#include namespace chatterino {