Remove official support for QMake (#3839)

* delet chatterino.pro

* Update documentation

* Update Github Actions config

* Update Cirrus CI config

* Attempt to fix Cirrus CI

* Add changelog entry

* Delete tools/update_filelist.py

It was a QMake-only script? Maybe will need revert + change to CMake or something?

* fix?

* Fuck this linter

* Attempt to clean up build.yml a little

* Add cmaake to install list, remove step for qmake PATH

* Change list entries to always use 1.

Sneaky unrelated change

* These are no longer tests!

* FUCK YOU PRETTIER

* Make BUILDING_ON_LINUX.md simpler

* Get rid of Jenkins

* Get rid of travis

* Remove dupes

* Remove appveyor

* Remove qmake from conanfile

* Try removing explicit qmake path

* Nothing uses the qt style plugins installer anymore

* Update manual linux building instructions

* Update freebsd compilation instructions with a copy paste from the linux instructions

* Remove unused docker files

* Remove linux breakpad build script as it's unused

* Update changelog entry phrasing

* Lint build markdown files

* Change top changelog entry to not be confused as a link

* Skip QtCreator conan setup if conan is disabled

This reduces the amount of warnings & errors Windows users get with
QtCreator

* lint building on linux file

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This commit is contained in:
Mm2PL 2022-07-23 14:04:29 +02:00 committed by GitHub
parent 9aa15f1ff5
commit 044dd8a616
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 71 additions and 1232 deletions

View file

@ -14,7 +14,6 @@ script_path=$(readlink -f "$0")
script_dir=$(dirname "$script_path")
chatterino_dir=$(dirname "$script_dir")
qmake_path=$(command -v qmake)
echo "Running LDD on chatterino binary:"
ldd ./bin/chatterino
@ -42,8 +41,7 @@ echo "Run LinuxDeployQT"
appdir/usr/share/applications/*.desktop \
-no-translations \
-bundle-non-qt-libs \
-unsupported-allow-new-glibc \
-qmake="$qmake_path"
-unsupported-allow-new-glibc
rm -rf appdir/home
rm -f appdir/AppRun

View file

@ -1,6 +0,0 @@
git clone http://code.qt.io/qt/qtstyleplugins.git
cd qtstyleplugins
/opt/qt512/bin/qmake CONFIG+=release
make -j$(nproc)
sudo make install
cd -

View file

@ -3,11 +3,11 @@ freebsd_instance:
task:
install_script:
- pkg install -y boost-libs git qt5-buildtools qt5-concurrent qt5-core qt5-multimedia qt5-qmake qt5-svg qtkeychain rapidjson
- pkg install -y boost-libs git qt5-buildtools qt5-concurrent qt5-core qt5-multimedia qt5-svg qtkeychain qt5-qmake cmake qt5-linguist
script: |
git submodule init
git submodule update
mkdir build
cd build
qmake-qt5 RAPIDJSON_SYSTEM=1 QMAKE_CC="cc" QMAKE_CXX="c++" QMAKE_LINK_C="cc" QMAKE_LINK_C_SHLIB="cc" QMAKE_LINK="c++" QMAKE_LINK_SHLIB="c++" QMAKE_CFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing " QMAKE_CXXFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing " QMAKE_LFLAGS="-fstack-protector-strong" QMAKE_LIBS="" QMAKE_CFLAGS_DEBUG="" QMAKE_CFLAGS_RELEASE="" QMAKE_CXXFLAGS_DEBUG="" QMAKE_CXXFLAGS_RELEASE="" PREFIX="/usr/local" CONFIG+="release" CONFIG-="debug separate_debug_info" -recursive ..
cmake CMAKE_C_COMPILER="cc" -DCMAKE_CXX_COMPILER="c++" -DCMAKE_C_FLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing " -DCMAKE_CXX_FLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing " -DLINK_OPTIONS="-fstack-protector-strong" -DCMAKE_INSTALL_PREFIX="/usr/local" -DCMAKE_BUILD_TYPE="release" ..
make -j $(getconf _NPROCESSORS_ONLN)

View file

@ -1,22 +0,0 @@
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get -y install wget libdbus-1-dev qt5-default
RUN apt-get -y install libboost-dev libssl-dev libboost-system-dev libboost-filesystem-dev
RUN apt-get -y install libpulse-dev
WORKDIR /build
RUN wget --quiet http://download.qt.io/official_releases/qt/5.12/5.12.4/qt-opensource-linux-x64-5.12.4.run && chmod +x *qt*.run
ADD qt-installer-noninteractive.qs .
RUN ls -la
RUN ./qt-opensource-linux-x64-*.run --platform minimal --verbose --script qt-installer-noninteractive.qs
RUN qtchooser -install 5.12.4 ~/Qt/5.12.4/gcc_64/bin/qmake
ENV QT_SELECT=5.12.4
RUN qmake --version
CMD ["/bin/sh"]
ENTRYPOINT ["./tools/docker/build.sh"]

View file

@ -1,81 +0,0 @@
// Emacs mode hint: -*- mode: JavaScript -*-
function Controller() {
installer.autoRejectMessageBoxes();
installer.installationFinished.connect(function() {
gui.clickButton(buttons.NextButton);
})
}
Controller.prototype.WelcomePageCallback = function() {
// click delay here because the next button is initially disabled for ~1 second
gui.clickButton(buttons.NextButton, 3000);
}
Controller.prototype.CredentialsPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.IntroductionPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.TargetDirectoryPageCallback = function()
{
gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("HomeDir") + "/Qt");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ComponentSelectionPageCallback = function() {
var widget = gui.currentPageWidget();
widget.deselectAll();
widget.selectComponent("qt.qt5.5124.gcc_64");
// widget.deselectComponent("qt.tools.qtcreator");
// widget.deselectComponent("qt.55.qt3d");
// widget.deselectComponent("qt.55.qtcanvas3d");
// widget.deselectComponent("qt.55.qtlocation");
// widget.deselectComponent("qt.55.qtquick1");
// widget.deselectComponent("qt.55.qtscript");
// widget.deselectComponent("qt.55.qtwebengine");
// widget.deselectComponent("qt.extras");
// widget.deselectComponent("qt.tools.doc");
// widget.deselectComponent("qt.tools.examples");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.LicenseAgreementPageCallback = function() {
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
gui.clickButton(buttons.NextButton);
}
Controller.prototype.StartMenuDirectoryPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ReadyForInstallationPageCallback = function()
{
gui.clickButton(buttons.NextButton);
}
Controller.prototype.FinishedPageCallback = function() {
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm;
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {
checkBoxForm.launchQtCreatorCheckBox.checked = false;
}
gui.clickButton(buttons.FinishButton);
}

View file

@ -19,12 +19,10 @@ jobs:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
qt-version: [5.15.2, 5.12.12]
build-system: [qmake, cmake]
pch: [true]
include:
- os: ubuntu-latest
qt-version: 5.15.2
build-system: cmake
pch: false
fail-fast: false
@ -84,21 +82,7 @@ jobs:
uses: ilammy/msvc-dev-cmd@v1.10.0
- name: Build (Windows)
if: startsWith(matrix.os, 'windows') && matrix.build-system == 'qmake'
run: |
mkdir build
cd build
conan install .. -b missing
qmake ..
set cl=/MP
nmake /S /NOLOGO
windeployqt release/chatterino.exe --release --no-compiler-runtime --no-translations --no-opengl-sw --dir Chatterino2/
cp release/chatterino.exe Chatterino2/
echo nightly > Chatterino2/modes
7z a chatterino-windows-x86-64.zip Chatterino2/
- name: Build with CMake (Windows)
if: startsWith(matrix.os, 'windows') && matrix.build-system == 'cmake'
if: startsWith(matrix.os, 'windows')
run: |
mkdir build
cd build
@ -115,7 +99,7 @@ jobs:
if: startsWith(matrix.os, 'windows')
uses: actions/upload-artifact@v3
with:
name: chatterino-windows-x86-64-${{ matrix.qt-version }}-${{ matrix.build-system }}.zip
name: chatterino-windows-x86-64-${{ matrix.qt-version }}.zip
path: build/chatterino-windows-x86-64.zip
- name: Clean Conan pkgs
@ -149,16 +133,7 @@ jobs:
libxcb-xinerama0
- name: Build (Ubuntu)
if: startsWith(matrix.os, 'ubuntu') && matrix.build-system == 'qmake'
run: |
mkdir build
cd build
qmake PREFIX=/usr ..
make -j$(nproc)
shell: bash
- name: Build with CMake (Ubuntu)
if: startsWith(matrix.os, 'ubuntu') && matrix.build-system == 'cmake'
if: startsWith(matrix.os, 'ubuntu')
run: |
mkdir build
cd build
@ -189,14 +164,14 @@ jobs:
if: startsWith(matrix.os, 'ubuntu')
uses: actions/upload-artifact@v3
with:
name: Chatterino-x86_64-${{ matrix.qt-version }}-${{ matrix.build-system }}.AppImage
name: Chatterino-x86_64-${{ matrix.qt-version }}.AppImage
path: build/Chatterino-x86_64.AppImage
- name: Upload artifact - .deb (Ubuntu)
if: startsWith(matrix.os, 'ubuntu')
uses: actions/upload-artifact@v3
with:
name: Chatterino-${{ matrix.qt-version }}-${{ matrix.build-system }}.deb
name: Chatterino-${{ matrix.qt-version }}.deb
path: build/Chatterino.deb
# MACOS
@ -207,16 +182,7 @@ jobs:
shell: bash
- name: Build (MacOS)
if: startsWith(matrix.os, 'macos') && matrix.build-system == 'qmake'
run: |
mkdir build
cd build
$Qt5_DIR/bin/qmake .. DEFINES+=$dateOfBuild
make -j$(sysctl -n hw.logicalcpu)
shell: bash
- name: Build with CMake (MacOS)
if: startsWith(matrix.os, 'macos') && matrix.build-system == 'cmake'
if: startsWith(matrix.os, 'macos')
run: |
mkdir build
cd build
@ -242,7 +208,7 @@ jobs:
if: startsWith(matrix.os, 'macos')
uses: actions/upload-artifact@v3
with:
name: chatterino-osx-${{ matrix.qt-version }}-${{ matrix.build-system }}.dmg
name: chatterino-osx-${{ matrix.qt-version }}.dmg
path: build/chatterino-osx.dmg
create-release:
@ -266,44 +232,24 @@ jobs:
- uses: actions/download-artifact@v3
with:
name: chatterino-windows-x86-64-5.15.2-qmake.zip
name: chatterino-windows-x86-64-5.15.2.zip
path: windows/
- uses: actions/download-artifact@v3
with:
name: chatterino-windows-x86-64-5.15.2-cmake.zip
path: windows-cmake/
- uses: actions/download-artifact@v3
with:
name: Chatterino-x86_64-5.15.2-qmake.AppImage
name: Chatterino-x86_64-5.15.2.AppImage
path: linux/
- uses: actions/download-artifact@v3
with:
name: Chatterino-x86_64-5.15.2-cmake.AppImage
path: linux-cmake/
- uses: actions/download-artifact@v3
with:
name: Chatterino-5.15.2-qmake.deb
name: Chatterino-5.15.2.deb
path: ubuntu/
- uses: actions/download-artifact@v3
with:
name: Chatterino-5.15.2-cmake.deb
path: ubuntu-cmake/
- uses: actions/download-artifact@v3
with:
name: chatterino-osx-5.15.2-qmake.dmg
name: chatterino-osx-5.15.2.dmg
path: macos/
- uses: actions/download-artifact@v3
with:
name: chatterino-osx-5.15.2-cmake.dmg
path: macos-cmake/
# TODO: Extract dmg and appimage
# - name: Read upload URL into output
@ -321,16 +267,6 @@ jobs:
asset_name: chatterino-windows-x86-64.zip
asset_content_type: application/zip
- name: Upload release asset (Windows) CMake
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./windows-cmake/chatterino-windows-x86-64.zip
asset_name: test-cmake-chatterino-windows-x86-64.zip
asset_content_type: application/zip
- name: Upload release asset (Ubuntu)
uses: actions/upload-release-asset@v1.0.2
env:
@ -341,16 +277,6 @@ jobs:
asset_name: Chatterino-x86_64.AppImage
asset_content_type: application/x-executable
- name: Upload release asset (Ubuntu) CMake
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./linux-cmake/Chatterino-x86_64.AppImage
asset_name: test-cmake-Chatterino-x86_64.AppImage
asset_content_type: application/x-executable
- name: Upload release asset (Ubuntu .deb)
uses: actions/upload-release-asset@v1.0.2
env:
@ -361,16 +287,6 @@ jobs:
asset_name: Chatterino-x86_64.deb
asset_content_type: application/vnd.debian.binary-package
- name: Upload release asset (Ubuntu .deb) CMake
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./ubuntu-cmake/Chatterino.deb
asset_name: test-cmake-Chatterino-x86_64.deb
asset_content_type: application/vnd.debian.binary-package
- name: Upload release asset (MacOS)
uses: actions/upload-release-asset@v1.0.2
env:
@ -381,12 +297,3 @@ jobs:
asset_name: chatterino-osx.dmg
asset_content_type: application/x-bzip2
- name: Upload release asset (MacOS) CMake
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./macos-cmake/chatterino-osx.dmg
asset_name: test-cmake-chatterino-osx.dmg
asset_content_type: application/x-bzip2

View file

@ -9,8 +9,17 @@ high that this also works on older FreeBSD releases, architectures and
FreeBSD 13.0-CURRENT.
1. Install build dependencies from package sources (or build from the
ports tree): `# pkg install qt5-core qt5-multimedia qt5-svg qt5-qmake qt5-buildtools gstreamer-plugins-good boost-libs rapidjson`
1. Go into the project directory
1. Create a build folder and go into it (`mkdir build && cd build`)
1. Proceed to compiling using the command
`qmake .. && make`
ports tree): `# pkg install qt5-core qt5-multimedia qt5-svg qt5-buildtools gstreamer-plugins-good boost-libs rapidjson cmake`
1. In the project directory, create a build directory and enter it
```sh
mkdir build
cd build
```
1. Generate build files
```sh
cmake ..
```
1. Build the project
```sh
make
```

View file

@ -2,80 +2,49 @@
Note on Qt version compatibility: If you are installing Qt from a package manager, please ensure the version you are installing is at least **Qt 5.12 or newer**.
## Ubuntu 20.04
## Install dependencies
### Ubuntu 20.04
_Most likely works the same for other Debian-like distros_
1. Install all of the dependencies using `sudo apt install qttools5-dev qtmultimedia5-dev libqt5svg5-dev libboost-dev libssl-dev libboost-system-dev libboost-filesystem-dev cmake g++`
Install all of the dependencies using `sudo apt install qttools5-dev qtmultimedia5-dev libqt5svg5-dev libboost-dev libssl-dev libboost-system-dev libboost-filesystem-dev cmake g++`
### Compiling through Qt Creator
### Arch Linux
1. Install C++ IDE Qt Creator by using `sudo apt install qtcreator`
1. Open `chatterino.pro` with Qt Creator and select build
Install all of the dependencies using `sudo pacman -S --needed qt5-base qt5-multimedia qt5-svg qt5-tools gst-plugins-ugly gst-plugins-good boost rapidjson pkgconf openssl cmake`
### Manually
Alternatively you can use the [chatterino2-git](https://aur.archlinux.org/packages/chatterino2-git/) package to build and install Chatterino for you.
1. Go into the project directory
1. Create a build folder and go into it (`mkdir build && cd build`)
1. Use one of the options below to compile it
### Using CMake
`cmake .. && make`
### Using QMake
`qmake .. && make`
## Arch Linux
### Through AUR
- [chatterino2-git](https://aur.archlinux.org/packages/chatterino2-git/)
### Manually
1. Install all of the dependencies using `sudo pacman -S --needed qt5-base qt5-multimedia qt5-svg qt5-tools gst-plugins-ugly gst-plugins-good boost rapidjson pkgconf openssl cmake`
1. Go into the project directory
1. Create a build folder and go into it (`mkdir build && cd build`)
1. Use one of the options below to compile it
### Using CMake
`cmake .. && make`
### Using QMake
`qmake .. && make`
## Fedora 28 and above
### Fedora 28 and above
_Most likely works the same for other Red Hat-like distros. Substitute `dnf` with `yum`._
1. Install all of the dependencies using `sudo dnf install qt5-qtbase-devel qt5-qtmultimedia-devel qt5-qtsvg-devel qt5-linguist libsecret-devel openssl-devel boost-devel cmake`
1. Go into the project directory
1. Create a build folder and go into it (`mkdir build && cd build`)
1. Use one of the options below to compile it
Install all of the dependencies using `sudo dnf install qt5-qtbase-devel qt5-qtmultimedia-devel qt5-qtsvg-devel qt5-linguist libsecret-devel openssl-devel boost-devel cmake`
### Using CMake
### NixOS 18.09+
`cmake .. && make -j$(nproc)`
Enter the development environment with all of the dependencies: `nix-shell -p openssl boost qt5.full pkg-config cmake`
### Using QMake
## Compile
`qmake-qt5 .. && make -j$(nproc)`
### Through Qt Creator
## NixOS 18.09+
1. Install C++ IDE Qt Creator by using `sudo apt install qtcreator`
1. Open `CMakeLists.txt` with Qt Creator and select build
1. Enter the development environment with all of the dependencies: `nix-shell -p openssl boost qt5.full pkg-config cmake`
1. Go into the project directory
1. Create a build folder and go into it (`mkdir build && cd build`)
1. Use one of the options below to compile it
## Manually
### Using CMake
`cmake .. && make`
### Using QMake
`qmake .. && make`
1. In the project directory, create a build directory and enter it
```sh
mkdir build
cd build
```
1. Generate build files
```sh
cmake ..
```
1. Build the project
```sh
make
```

View file

@ -1,21 +1,18 @@
# Building on macOS
#### Note - If you want to develop Chatterino 2 you might also want to install Qt Creator (make sure to install **Qt 5.12 or newer**), it is not required though and any C++ IDE (might require additional setup for cmake to find Qt libraries) or a normal text editor + running qmake/cmake from terminal should work as well
#### Note - If you want to develop Chatterino 2 you might also want to install Qt Creator (make sure to install **Qt 5.12 or newer**), it is not required though and any C++ IDE (might require additional setup for cmake to find Qt libraries) or a normal text editor + running cmake from terminal should work as well
#### Note - Chatterino 2 is only tested on macOS 10.14 and above - anything below that is considered unsupported. It may or may not work on earlier versions
1. Install Xcode and Xcode Command Line Utilities
2. Start Xcode, go into Settings -> Locations, and activate your Command Line Tools
3. Install brew https://brew.sh/
4. Install the dependencies using `brew install boost openssl rapidjson`
5. Install Qt5 using `brew install qt@5`
6. Step 5 should output some directions to add Qt to your path, you will need to do this for qmake
7. (_OPTIONAL_) Install [ccache](https://ccache.dev) (used to speed up compilation by using cached results from previous builds) using `brew install ccache`
8. Go into the project directory
9. Create a build folder and go into it (`mkdir build && cd build`)
10. Compile using `qmake .. && make`
_If you want to use cmake instead of qmake, just replace the above qmake command with cmake_
1. Start Xcode, go into Settings -> Locations, and activate your Command Line Tools
1. Install brew https://brew.sh/
1. Install the dependencies using `brew install boost openssl rapidjson cmake`
1. Install Qt5 using `brew install qt@5`
1. (_OPTIONAL_) Install [ccache](https://ccache.dev) (used to speed up compilation by using cached results from previous builds) using `brew install ccache`
1. Go into the project directory
1. Create a build folder and go into it (`mkdir build && cd build`)
1. Compile using `cmake .. && make`
If the Project does not build at this point, you might need to add additional Paths/Libs, because brew does not install openssl and boost in the common path. You can get their path using

View file

@ -83,7 +83,7 @@ Compiling with Breakpad support enables crash reports that can be of use for dev
## Run the build in Qt Creator
1. Open the `chatterino.pro` file by double-clicking it, or by opening it via Qt Creator.
1. Open the `CMakeLists.txt` file by double-clicking it, or by opening it via Qt Creator.
2. You will be presented with a screen that is titled "Configure Project". In this screen, you should have at least one option present ready to be configured, like this:
![Qt Create Configure Project screenshot](https://user-images.githubusercontent.com/69117321/169887645-2ae0871a-fe8a-4eb9-98db-7b996dea3a54.png)
3. Select the profile(s) you want to build with and click "Configure Project".

View file

@ -2,7 +2,7 @@
## Unversioned
- Major: Added multi-channel searching to search dialog via keyboard shortcut. [Ctrl+Shift+F by default] (#3694)
- Major: Added multi-channel searching to search dialog via keyboard shortcut. (Ctrl+Shift+F by default) (#3694)
- Minor: Added `is:first-msg` search option. (#3700)
- Minor: Added quotation marks in the permitted/blocked Automod messages for clarity. (#3654)
- Minor: Added a `Scroll to top` keyboard shortcut for splits. (#3802)
@ -42,6 +42,7 @@
- Bugfix: Adopt popup windows in order to force floating behavior on some window managers. (#3836)
- Bugfix: Fix split focusing being broken in certain circumstances when the "Show input when it's empty" setting was disabled. (#3838)
- Bugfix: Always refresh tab when a contained split's channel is set. (#3849)
- Dev: Remove official support for QMake. (#3839)
- Dev: Rewrite LimitedQueue (#3798)
- Dev: Overhaul highlight system by moving all checks into a Controller allowing for easier tests. (#3399, #3801, #3835)
- Dev: Use Game Name returned by Get Streams instead of querying it from the Get Games API. (#3662)

View file

@ -30,6 +30,8 @@ endif()
if (USE_CONAN OR CONAN_EXPORTED)
include(${CMAKE_CURRENT_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS NO_OUTPUT_DIRS)
else ()
set(QT_CREATOR_SKIP_CONAN_SETUP ON)
endif()
find_program(CCACHE_PROGRAM ccache)

20
Jenkinsfile vendored
View file

@ -1,20 +0,0 @@
pipeline {
agent any
stages {
stage('Build') {
parallel {
stage('GCC') {
steps {
sh 'mkdir -p build-linux-gcc && cd build-linux-gcc && make distclean; qmake .. && make'
}
}
stage('Clang') {
steps {
sh 'mkdir -p build-linux-clang && cd build-linux-clang && make distclean; qmake -spec linux-clang .. && make'
}
}
}
}
}
}

View file

@ -1,98 +0,0 @@
matrix:
include:
# gcc build
- os: linux
name: Linux Build (Bionic)
dist: bionic
language: cpp
addons:
apt:
sources:
- sourceline: 'ppa:beineri/opt-qt-5.12.3-bionic'
packages:
- qt512-meta-minimal
- qt512multimedia
- qt512svg
- libboost-dev
- libgl1-mesa-dev
- libboost-system-dev
- libboost-filesystem-dev
- libgtk2.0-dev
install:
- sh ./.CI/InstallQTStylePlugins.sh
script:
- dateOfBuild="CHATTERINO_NIGHTLY_VERSION_STRING=\"\\\"$(date +%d.%m.%Y)\\\"\""
- /opt/qt512/bin/qmake CONFIG+=release PREFIX=/usr DEFINES+=$dateOfBuild
- make -j$(nproc)
before_deploy:
- git config --global user.email "builds@travis-ci.com"
- git config --global user.name "Travis CI"
- export GIT_TAG=nightly-build
- export TRAVIS_TAG=nightly-build
- git tag $GIT_TAG -f
- sh ./.CI/CreateAppImage.sh
deploy:
skip_cleanup: true
overwrite: true
provider: releases
api_key:
secure: ZzS55wlwtLAVEBaDDMqiuqZwuTpvLbNnaNw0enfiqpjWT7hgbbp/SBw2rbYIkVqm7tBHCLnEzKto6p4Gz6ROo0gGACARmx7EwIloX18rMCuBWygNHRyVruDSlmEOLWRqYByDbUdCkKhYr9aegnkm7zhzCmSBCTW28/uVlxM2bTHIgqKEpB4k1W8OqKdJDxqZKeF4r7nDNSOx5ylhpiK+WNFK8yfiaF1SQlSwsdv9o1RkbJlew7iigvHvEM2kDMkiMWYlJ2khkUWVCVQDQGe4/ya5pgTIHDLu5sZuclp5zhgfDf1U3STvsbQWvxJfsmCId7IQHJ83OSFeoUf6y849i3GMqlNi3aXrxEx0fi0dILQ76/Sj246FPMA4kC0/W49uaxqD784wFuJDjSWeWwi/NPoJ/gz0mGZy+08BoztOGqqOKjJJdESBYTio71N8VcK09zQ0LjXRmX+g3BbrK6a2F3hiMKeuYwdaN2/KdMMoqFDau6L3fXLdpcHKdJC8K/yzJtyyIe0CRB2nj8sZLHfxDwoRm7gOTDXq1zPL7CP9cCwCnCR6nm3CqUW/CnSWuMKpSoQRlP5EBI7zzYT2/tZc/vat5nob7Xif6yFF9fh/VHx4tC6zsfkA1nPPN3+QpdVInRo7dCVxtTqey5FdVjSiv7n11TrFhZ7+Fr5x6CZqa58=
file: "Chatterino-x86_64.AppImage"
prerelease: true
on:
branch: master
- os: osx
osx_image: xcode11
name: xcode Build
compiler: clang
addons:
homebrew:
packages:
- boost
- openssl
- rapidjson
- qt
- p7zip
- create-dmg
script:
- mkdir build && cd build
- dateOfBuild="CHATTERINO_NIGHTLY_VERSION_STRING=\"\\\"$(date +%d.%m.%Y)\\\"\""
- /usr/local/opt/qt/bin/qmake .. DEFINES+=$dateOfBuild
- make -j8
- /usr/local/opt/qt/bin/macdeployqt chatterino.app -dmg
- mkdir app
- hdiutil attach chatterino.dmg
- cp -r /Volumes/chatterino/chatterino.app app/
- "create-dmg \
--volname Chatterino2 \
--volicon ../resources/chatterino.icns \
--icon-size 50 \
--app-drop-link 0 0 \
--format UDBZ \
chatterino-osx.dmg app/"
before_deploy:
- git config --global user.email "builds@travis-ci.com"
- git config --global user.name "Travis CI"
- export GIT_TAG=nightly-build
- export TRAVIS_TAG=nightly-build
- git tag $GIT_TAG -f
deploy:
skip_cleanup: true
overwrite: true
provider: releases
api_key:
secure: ZzS55wlwtLAVEBaDDMqiuqZwuTpvLbNnaNw0enfiqpjWT7hgbbp/SBw2rbYIkVqm7tBHCLnEzKto6p4Gz6ROo0gGACARmx7EwIloX18rMCuBWygNHRyVruDSlmEOLWRqYByDbUdCkKhYr9aegnkm7zhzCmSBCTW28/uVlxM2bTHIgqKEpB4k1W8OqKdJDxqZKeF4r7nDNSOx5ylhpiK+WNFK8yfiaF1SQlSwsdv9o1RkbJlew7iigvHvEM2kDMkiMWYlJ2khkUWVCVQDQGe4/ya5pgTIHDLu5sZuclp5zhgfDf1U3STvsbQWvxJfsmCId7IQHJ83OSFeoUf6y849i3GMqlNi3aXrxEx0fi0dILQ76/Sj246FPMA4kC0/W49uaxqD784wFuJDjSWeWwi/NPoJ/gz0mGZy+08BoztOGqqOKjJJdESBYTio71N8VcK09zQ0LjXRmX+g3BbrK6a2F3hiMKeuYwdaN2/KdMMoqFDau6L3fXLdpcHKdJC8K/yzJtyyIe0CRB2nj8sZLHfxDwoRm7gOTDXq1zPL7CP9cCwCnCR6nm3CqUW/CnSWuMKpSoQRlP5EBI7zzYT2/tZc/vat5nob7Xif6yFF9fh/VHx4tC6zsfkA1nPPN3+QpdVInRo7dCVxtTqey5FdVjSiv7n11TrFhZ7+Fr5x6CZqa58=
file: "chatterino-osx.dmg"
prerelease: true
on:
branch: master

View file

@ -1,65 +0,0 @@
version: "{build}"
branches:
only:
- dont-automatically-build-appveyor
image: Visual Studio 2017
platform: Any CPU
clone_depth: 1
install:
- cmd: >-
choco source add -n=AFG -s="https://api.bintray.com/nuget/anotherfoxguy/choco-pkg"
choco install conan -y
refreshenv
conan user
git submodule update --init --recursive
set QTDIR=C:\Qt\5.13\msvc2017_64
set PATH=%PATH%;%QTDIR%\bin
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
build_script:
- cmd: >-
dir
mkdir build
cd build
conan install ..
set dateOfBuild=%date:~7,2%.%date:~4,2%.%date:~10,4%
qmake ../chatterino.pro DEFINES+="CHATTERINO_NIGHTLY_VERSION_STRING=\\\"'$s%dateOfBuild% '$$system(git describe --always)-$$system(git rev-list master --count)\\\""
set cl=/MP
nmake /S /NOLOGO
windeployqt release/chatterino.exe --release --no-compiler-runtime --no-translations --no-opengl-sw --dir Chatterino2/
cp release/chatterino.exe Chatterino2/
echo nightly > Chatterino2/modes
7z a chatterino-windows-x86-64.zip Chatterino2/
artifacts:
- path: build/chatterino-windows-x86-64.zip
name: chatterino
deploy:
- provider: GitHub
tag: nightly-build
release: nightly-build
description: 'nightly v$(appveyor_build_version) built 👉 $(APPVEYOR_REPO_COMMIT_TIMESTAMP) 👈\nLast change: $(APPVEYOR_REPO_COMMIT_MESSAGE) \n$(APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED)'
auth_token:
secure: sAJzAbiQSsYZLT+byDar9u61X0E9o35anaPMSFkOzdHeDFHjx1kW4cDP/4EEbxhx
repository: Chatterino/chatterino2
artifact: build/chatterino-windows-x86-64.zip
prerelease: true
force_update: true
on:
branch: master

View file

@ -1,699 +0,0 @@
# Exposed build flags:
# from lib/websocketpp.pri
# - WEBSOCKETPP_PREFIX ($$PWD by default)
# - WEBSOCKETPP_SYSTEM (1 = true) (unix only)
# from lib/rapidjson.pri
# - RAPIDJSON_PREFIX ($$PWD by default)
# - RAPIDJSON_SYSTEM (1 = true) (Linux only, uses pkg-config)
# from lib/boost.pri
# - BOOST_DIRECTORY (C:\local\boost\ by default) (Windows only)
CCACHE_BIN = $$system(which ccache)
!isEmpty(CCACHE_BIN) {
load(ccache)
CONFIG+=ccache
}
MINIMUM_REQUIRED_QT_VERSION = 5.11.0
!versionAtLeast(QT_VERSION, $$MINIMUM_REQUIRED_QT_VERSION) {
error("You're trying to compile with Qt $$QT_VERSION, but minimum required Qt version is $$MINIMUM_REQUIRED_QT_VERSION")
}
QT += widgets core gui network multimedia svg concurrent
CONFIG += communi
COMMUNI += core model util
INCLUDEPATH += src/
TARGET = chatterino
TEMPLATE = app
PRECOMPILED_HEADER = src/PrecompiledHeader.hpp
CONFIG += precompile_header
DEFINES += CHATTERINO
DEFINES += AB_CUSTOM_THEME
DEFINES += AB_CUSTOM_SETTINGS
CONFIG += AB_NOT_STANDALONE
useBreakpad {
LIBS += -L$$PWD/lib/qBreakpad/handler/build
include(lib/qBreakpad/qBreakpad.pri)
DEFINES += C_USE_BREAKPAD
}
# use C++17
CONFIG += c++17
# C++17 backwards compatability
win32-msvc* {
QMAKE_CXXFLAGS += /std:c++17
} else {
QMAKE_CXXFLAGS += -std=c++17
}
linux {
LIBS += -lrt
QMAKE_LFLAGS += -lrt
# Enable linking libraries using PKGCONFIG += libraryname
CONFIG += link_pkgconfig
}
macx {
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.14
INCLUDEPATH += /usr/local/include
INCLUDEPATH += /usr/local/opt/openssl/include
LIBS += -L/usr/local/opt/openssl/lib
}
# https://bugreports.qt.io/browse/QTBUG-27018
equals(QMAKE_CXX, "clang++")|equals(QMAKE_CXX, "g++") {
TARGET = bin/chatterino
}
# Icons
macx:ICON = resources/chatterino.icns
win32:RC_FILE = resources/windows.rc
macx {
LIBS += -L/usr/local/lib
}
# Set C_DEBUG if it's a debug build
CONFIG(debug, debug|release) {
DEFINES += C_DEBUG
DEFINES += QT_DEBUG
} else {
DEFINES += NDEBUG
}
# Submodules
include(lib/warnings.pri)
include(lib/libcommuni.pri)
include(lib/websocketpp.pri)
include(lib/wintoast.pri)
include(lib/signals.pri)
include(lib/settings.pri)
include(lib/serialize.pri)
include(lib/lrucache.pri)
include(lib/magic_enum.pri)
include(lib/winsdk.pri)
include(lib/rapidjson.pri)
include(lib/qtkeychain.pri)
exists( $$OUT_PWD/conanbuildinfo.pri ) {
message("Using conan packages")
CONFIG += conan_basic_setup
include($$OUT_PWD/conanbuildinfo.pri)
LIBS += -lGdi32
}
else{
include(lib/boost.pri)
include(lib/openssl.pri)
}
# Optional feature: QtWebEngine
#exists ($(QTDIR)/include/QtWebEngine/QtWebEngine) {
# message(Using QWebEngine)
# QT += webenginewidgets
# DEFINES += "USEWEBENGINE"
#}
SOURCES += \
src/Application.cpp \
src/autogenerated/ResourcesAutogen.cpp \
src/BaseSettings.cpp \
src/BaseTheme.cpp \
src/BrowserExtension.cpp \
src/common/Args.cpp \
src/common/Channel.cpp \
src/common/ChannelChatters.cpp \
src/common/ChatterinoSetting.cpp \
src/common/ChatterSet.cpp \
src/common/CompletionModel.cpp \
src/common/Credentials.cpp \
src/common/DownloadManager.cpp \
src/common/Env.cpp \
src/common/LinkParser.cpp \
src/common/Modes.cpp \
src/common/NetworkCommon.cpp \
src/common/NetworkManager.cpp \
src/common/NetworkPrivate.cpp \
src/common/NetworkRequest.cpp \
src/common/NetworkResult.cpp \
src/common/QLogging.cpp \
src/common/Version.cpp \
src/common/WindowDescriptors.cpp \
src/controllers/accounts/Account.cpp \
src/controllers/accounts/AccountController.cpp \
src/controllers/accounts/AccountModel.cpp \
src/controllers/commands/Command.cpp \
src/controllers/commands/CommandController.cpp \
src/controllers/commands/CommandModel.cpp \
src/controllers/filters/FilterModel.cpp \
src/controllers/filters/parser/FilterParser.cpp \
src/controllers/filters/parser/Tokenizer.cpp \
src/controllers/filters/parser/Types.cpp \
src/controllers/highlights/BadgeHighlightModel.cpp \
src/controllers/highlights/HighlightBadge.cpp \
src/controllers/highlights/HighlightBlacklistModel.cpp \
src/controllers/highlights/HighlightController.cpp \
src/controllers/highlights/HighlightModel.cpp \
src/controllers/highlights/HighlightPhrase.cpp \
src/controllers/highlights/UserHighlightModel.cpp \
src/controllers/hotkeys/Hotkey.cpp \
src/controllers/hotkeys/HotkeyController.cpp \
src/controllers/hotkeys/HotkeyHelpers.cpp \
src/controllers/hotkeys/HotkeyModel.cpp \
src/controllers/ignores/IgnoreController.cpp \
src/controllers/ignores/IgnoreModel.cpp \
src/controllers/moderationactions/ModerationAction.cpp \
src/controllers/moderationactions/ModerationActionModel.cpp \
src/controllers/nicknames/NicknamesModel.cpp \
src/controllers/notifications/NotificationController.cpp \
src/controllers/notifications/NotificationModel.cpp \
src/controllers/pings/MutedChannelModel.cpp \
src/debug/Benchmark.cpp \
src/main.cpp \
src/messages/Emote.cpp \
src/messages/Image.cpp \
src/messages/ImageSet.cpp \
src/messages/layouts/MessageLayout.cpp \
src/messages/layouts/MessageLayoutContainer.cpp \
src/messages/layouts/MessageLayoutElement.cpp \
src/messages/Link.cpp \
src/messages/Message.cpp \
src/messages/MessageBuilder.cpp \
src/messages/MessageColor.cpp \
src/messages/MessageContainer.cpp \
src/messages/MessageElement.cpp \
src/messages/search/AuthorPredicate.cpp \
src/messages/search/ChannelPredicate.cpp \
src/messages/search/LinkPredicate.cpp \
src/messages/search/MessageFlagsPredicate.cpp \
src/messages/search/RegexPredicate.cpp \
src/messages/search/SubstringPredicate.cpp \
src/messages/SharedMessageBuilder.cpp \
src/providers/bttv/BttvEmotes.cpp \
src/providers/bttv/LoadBttvChannelEmote.cpp \
src/providers/chatterino/ChatterinoBadges.cpp \
src/providers/colors/ColorProvider.cpp \
src/providers/emoji/Emojis.cpp \
src/providers/ffz/FfzBadges.cpp \
src/providers/ffz/FfzEmotes.cpp \
src/providers/irc/AbstractIrcServer.cpp \
src/providers/irc/Irc2.cpp \
src/providers/irc/IrcAccount.cpp \
src/providers/irc/IrcChannel2.cpp \
src/providers/irc/IrcCommands.cpp \
src/providers/irc/IrcConnection2.cpp \
src/providers/irc/IrcMessageBuilder.cpp \
src/providers/irc/IrcServer.cpp \
src/providers/IvrApi.cpp \
src/providers/LinkResolver.cpp \
src/providers/twitch/api/Helix.cpp \
src/providers/twitch/ChannelPointReward.cpp \
src/providers/twitch/IrcMessageHandler.cpp \
src/providers/twitch/PubSubActions.cpp \
src/providers/twitch/PubSubClient.cpp \
src/providers/twitch/PubSubManager.cpp \
src/providers/twitch/pubsubmessages/AutoMod.cpp \
src/providers/twitch/pubsubmessages/Base.cpp \
src/providers/twitch/pubsubmessages/ChannelPoints.cpp \
src/providers/twitch/pubsubmessages/ChatModeratorAction.cpp \
src/providers/twitch/pubsubmessages/Listen.cpp \
src/providers/twitch/pubsubmessages/Unlisten.cpp \
src/providers/twitch/pubsubmessages/Whisper.cpp \
src/providers/twitch/TwitchAccount.cpp \
src/providers/twitch/TwitchAccountManager.cpp \
src/providers/twitch/TwitchBadge.cpp \
src/providers/twitch/TwitchBadges.cpp \
src/providers/twitch/TwitchChannel.cpp \
src/providers/twitch/TwitchEmotes.cpp \
src/providers/twitch/TwitchHelpers.cpp \
src/providers/twitch/TwitchIrcServer.cpp \
src/providers/twitch/TwitchMessageBuilder.cpp \
src/providers/twitch/TwitchUser.cpp \
src/RunGui.cpp \
src/singletons/Badges.cpp \
src/singletons/Emotes.cpp \
src/singletons/Fonts.cpp \
src/singletons/helper/GifTimer.cpp \
src/singletons/helper/LoggingChannel.cpp \
src/singletons/Logging.cpp \
src/singletons/NativeMessaging.cpp \
src/singletons/Paths.cpp \
src/singletons/Resources.cpp \
src/singletons/Settings.cpp \
src/singletons/Theme.cpp \
src/singletons/Toasts.cpp \
src/singletons/TooltipPreviewImage.cpp \
src/singletons/Updates.cpp \
src/singletons/WindowManager.cpp \
src/util/AttachToConsole.cpp \
src/util/Clipboard.cpp \
src/util/DebugCount.cpp \
src/util/DisplayBadge.cpp \
src/util/FormatTime.cpp \
src/util/FunctionEventFilter.cpp \
src/util/FuzzyConvert.cpp \
src/util/Helpers.cpp \
src/util/IncognitoBrowser.cpp \
src/util/InitUpdateButton.cpp \
src/util/LayoutHelper.cpp \
src/util/NuulsUploader.cpp \
src/util/RapidjsonHelpers.cpp \
src/util/RatelimitBucket.cpp \
src/util/SampleData.cpp \
src/util/SplitCommand.cpp \
src/util/StreamerMode.cpp \
src/util/StreamLink.cpp \
src/util/Twitch.cpp \
src/util/WindowsHelper.cpp \
src/widgets/AccountSwitchPopup.cpp \
src/widgets/AccountSwitchWidget.cpp \
src/widgets/AttachedWindow.cpp \
src/widgets/BasePopup.cpp \
src/widgets/BaseWidget.cpp \
src/widgets/BaseWindow.cpp \
src/widgets/dialogs/BadgePickerDialog.cpp \
src/widgets/dialogs/ChannelFilterEditorDialog.cpp \
src/widgets/dialogs/ColorPickerDialog.cpp \
src/widgets/dialogs/EditHotkeyDialog.cpp \
src/widgets/dialogs/EmotePopup.cpp \
src/widgets/dialogs/IrcConnectionEditor.cpp \
src/widgets/dialogs/LastRunCrashDialog.cpp \
src/widgets/dialogs/LoginDialog.cpp \
src/widgets/dialogs/NotificationPopup.cpp \
src/widgets/dialogs/QualityPopup.cpp \
src/widgets/dialogs/SelectChannelDialog.cpp \
src/widgets/dialogs/SelectChannelFiltersDialog.cpp \
src/widgets/dialogs/SettingsDialog.cpp \
src/widgets/dialogs/switcher/NewPopupItem.cpp \
src/widgets/dialogs/switcher/NewTabItem.cpp \
src/widgets/dialogs/switcher/QuickSwitcherModel.cpp \
src/widgets/dialogs/switcher/QuickSwitcherPopup.cpp \
src/widgets/dialogs/switcher/SwitchSplitItem.cpp \
src/widgets/dialogs/UpdateDialog.cpp \
src/widgets/dialogs/UserInfoPopup.cpp \
src/widgets/dialogs/WelcomeDialog.cpp \
src/widgets/FramelessEmbedWindow.cpp \
src/widgets/helper/Button.cpp \
src/widgets/helper/ChannelView.cpp \
src/widgets/helper/ColorButton.cpp \
src/widgets/helper/ComboBoxItemDelegate.cpp \
src/widgets/helper/DebugPopup.cpp \
src/widgets/helper/EditableModelView.cpp \
src/widgets/helper/EffectLabel.cpp \
src/widgets/helper/NotebookButton.cpp \
src/widgets/helper/NotebookTab.cpp \
src/widgets/helper/QColorPicker.cpp \
src/widgets/helper/RegExpItemDelegate.cpp \
src/widgets/helper/TrimRegExpValidator.cpp \
src/widgets/helper/ResizingTextEdit.cpp \
src/widgets/helper/ScrollbarHighlight.cpp \
src/widgets/helper/SearchPopup.cpp \
src/widgets/helper/SettingsDialogTab.cpp \
src/widgets/helper/SignalLabel.cpp \
src/widgets/helper/TitlebarButton.cpp \
src/widgets/Label.cpp \
src/widgets/listview/GenericItemDelegate.cpp \
src/widgets/listview/GenericListItem.cpp \
src/widgets/listview/GenericListModel.cpp \
src/widgets/listview/GenericListView.cpp \
src/widgets/Notebook.cpp \
src/widgets/Scrollbar.cpp \
src/widgets/settingspages/AboutPage.cpp \
src/widgets/settingspages/AccountsPage.cpp \
src/widgets/settingspages/CommandPage.cpp \
src/widgets/settingspages/ExternalToolsPage.cpp \
src/widgets/settingspages/FiltersPage.cpp \
src/widgets/settingspages/GeneralPage.cpp \
src/widgets/settingspages/GeneralPageView.cpp \
src/widgets/settingspages/HighlightingPage.cpp \
src/widgets/settingspages/IgnoresPage.cpp \
src/widgets/settingspages/KeyboardSettingsPage.cpp \
src/widgets/settingspages/ModerationPage.cpp \
src/widgets/settingspages/NicknamesPage.cpp \
src/widgets/settingspages/NotificationPage.cpp \
src/widgets/settingspages/SettingsPage.cpp \
src/widgets/splits/ClosedSplits.cpp \
src/widgets/splits/InputCompletionItem.cpp \
src/widgets/splits/InputCompletionPopup.cpp \
src/widgets/splits/Split.cpp \
src/widgets/splits/SplitContainer.cpp \
src/widgets/splits/SplitHeader.cpp \
src/widgets/splits/SplitInput.cpp \
src/widgets/splits/SplitOverlay.cpp \
src/widgets/StreamView.cpp \
src/widgets/TooltipWidget.cpp \
src/widgets/Window.cpp \
HEADERS += \
src/Application.hpp \
src/autogenerated/ResourcesAutogen.hpp \
src/BaseSettings.hpp \
src/BaseTheme.hpp \
src/BrowserExtension.hpp \
src/common/Aliases.hpp \
src/common/Args.hpp \
src/common/Atomic.hpp \
src/common/Channel.hpp \
src/common/ChannelChatters.hpp \
src/common/ChatterinoSetting.hpp \
src/common/ChatterSet.hpp \
src/common/Common.hpp \
src/common/CompletionModel.hpp \
src/common/ConcurrentMap.hpp \
src/common/Credentials.hpp \
src/common/DownloadManager.hpp \
src/common/Env.hpp \
src/common/FlagsEnum.hpp \
src/common/IrcColors.hpp \
src/common/LinkParser.hpp \
src/common/Modes.hpp \
src/common/NetworkCommon.hpp \
src/common/NetworkManager.hpp \
src/common/NetworkPrivate.hpp \
src/common/NetworkRequest.hpp \
src/common/NetworkResult.hpp \
src/common/NullablePtr.hpp \
src/common/Outcome.hpp \
src/common/ProviderId.hpp \
src/common/QLogging.hpp \
src/common/SignalVector.hpp \
src/common/SignalVectorModel.hpp \
src/common/Singleton.hpp \
src/common/UniqueAccess.hpp \
src/common/Version.hpp \
src/common/WindowDescriptors.hpp \
src/controllers/accounts/Account.hpp \
src/controllers/accounts/AccountController.hpp \
src/controllers/accounts/AccountModel.hpp \
src/controllers/commands/Command.hpp \
src/controllers/commands/CommandController.hpp \
src/controllers/commands/CommandModel.hpp \
src/controllers/filters/FilterModel.hpp \
src/controllers/filters/FilterRecord.hpp \
src/controllers/filters/FilterSet.hpp \
src/controllers/filters/parser/FilterParser.hpp \
src/controllers/filters/parser/Tokenizer.hpp \
src/controllers/filters/parser/Types.hpp \
src/controllers/highlights/BadgeHighlightModel.hpp \
src/controllers/highlights/HighlightBadge.hpp \
src/controllers/highlights/HighlightBlacklistModel.hpp \
src/controllers/highlights/HighlightBlacklistUser.hpp \
src/controllers/highlights/HighlightController.hpp \
src/controllers/highlights/HighlightModel.hpp \
src/controllers/highlights/HighlightPhrase.hpp \
src/controllers/highlights/UserHighlightModel.hpp \
src/controllers/hotkeys/ActionNames.hpp \
src/controllers/hotkeys/Hotkey.hpp \
src/controllers/hotkeys/HotkeyCategory.hpp \
src/controllers/hotkeys/HotkeyController.hpp \
src/controllers/hotkeys/HotkeyHelpers.hpp \
src/controllers/hotkeys/HotkeyModel.hpp \
src/controllers/ignores/IgnoreController.hpp \
src/controllers/ignores/IgnoreModel.hpp \
src/controllers/ignores/IgnorePhrase.hpp \
src/controllers/moderationactions/ModerationAction.hpp \
src/controllers/moderationactions/ModerationActionModel.hpp \
src/controllers/nicknames/Nickname.hpp \
src/controllers/nicknames/NicknamesModel.hpp \
src/controllers/notifications/NotificationController.hpp \
src/controllers/notifications/NotificationModel.hpp \
src/controllers/pings/MutedChannelModel.hpp \
src/debug/AssertInGuiThread.hpp \
src/debug/Benchmark.hpp \
src/ForwardDecl.hpp \
src/messages/Emote.hpp \
src/messages/Image.hpp \
src/messages/ImageSet.hpp \
src/messages/layouts/MessageLayout.hpp \
src/messages/layouts/MessageLayoutContainer.hpp \
src/messages/layouts/MessageLayoutElement.hpp \
src/messages/LimitedQueue.hpp \
src/messages/LimitedQueueSnapshot.hpp \
src/messages/Link.hpp \
src/messages/Message.hpp \
src/messages/MessageBuilder.hpp \
src/messages/MessageColor.hpp \
src/messages/MessageContainer.hpp \
src/messages/MessageElement.hpp \
src/messages/MessageParseArgs.hpp \
src/messages/search/AuthorPredicate.hpp \
src/messages/search/ChannelPredicate.hpp \
src/messages/search/LinkPredicate.hpp \
src/messages/search/MessageFlagsPredicate.hpp \
src/messages/search/MessagePredicate.hpp \
src/messages/search/RegexPredicate.hpp \
src/messages/search/SubstringPredicate.hpp \
src/messages/Selection.hpp \
src/messages/SharedMessageBuilder.hpp \
src/PrecompiledHeader.hpp \
src/providers/bttv/BttvEmotes.hpp \
src/providers/bttv/LoadBttvChannelEmote.hpp \
src/providers/chatterino/ChatterinoBadges.hpp \
src/providers/colors/ColorProvider.hpp \
src/providers/emoji/Emojis.hpp \
src/providers/ffz/FfzBadges.hpp \
src/providers/ffz/FfzEmotes.hpp \
src/providers/irc/AbstractIrcServer.hpp \
src/providers/irc/Irc2.hpp \
src/providers/irc/IrcAccount.hpp \
src/providers/irc/IrcChannel2.hpp \
src/providers/irc/IrcCommands.hpp \
src/providers/irc/IrcConnection2.hpp \
src/providers/irc/IrcMessageBuilder.hpp \
src/providers/irc/IrcServer.hpp \
src/providers/IvrApi.hpp \
src/providers/LinkResolver.hpp \
src/providers/twitch/api/Helix.hpp \
src/providers/twitch/ChannelPointReward.hpp \
src/providers/twitch/ChatterinoWebSocketppLogger.hpp \
src/providers/twitch/EmoteValue.hpp \
src/providers/twitch/IrcMessageHandler.hpp \
src/providers/twitch/PubSubActions.hpp \
src/providers/twitch/PubSubClient.hpp \
src/providers/twitch/PubSubClientOptions.hpp \
src/providers/twitch/PubSubHelpers.hpp \
src/providers/twitch/PubSubManager.hpp \
src/providers/twitch/PubSubMessages.hpp \
src/providers/twitch/pubsubmessages/AutoMod.hpp \
src/providers/twitch/pubsubmessages/Base.hpp \
src/providers/twitch/pubsubmessages/ChannelPoints.hpp \
src/providers/twitch/pubsubmessages/ChatModeratorAction.hpp \
src/providers/twitch/pubsubmessages/Listen.hpp \
src/providers/twitch/pubsubmessages/Message.hpp \
src/providers/twitch/pubsubmessages/Unlisten.hpp \
src/providers/twitch/pubsubmessages/Whisper.hpp \
src/providers/twitch/PubSubWebsocket.hpp \
src/providers/twitch/TwitchAccount.hpp \
src/providers/twitch/TwitchAccountManager.hpp \
src/providers/twitch/TwitchBadge.hpp \
src/providers/twitch/TwitchBadges.hpp \
src/providers/twitch/TwitchChannel.hpp \
src/providers/twitch/TwitchCommon.hpp \
src/providers/twitch/TwitchEmotes.hpp \
src/providers/twitch/TwitchHelpers.hpp \
src/providers/twitch/TwitchIrcServer.hpp \
src/providers/twitch/TwitchMessageBuilder.hpp \
src/providers/twitch/TwitchUser.hpp \
src/RunGui.hpp \
src/singletons/Badges.hpp \
src/singletons/Emotes.hpp \
src/singletons/Fonts.hpp \
src/singletons/helper/GifTimer.hpp \
src/singletons/helper/LoggingChannel.hpp \
src/singletons/Logging.hpp \
src/singletons/NativeMessaging.hpp \
src/singletons/Paths.hpp \
src/singletons/Resources.hpp \
src/singletons/Settings.hpp \
src/singletons/Theme.hpp \
src/singletons/Toasts.hpp \
src/singletons/TooltipPreviewImage.hpp \
src/singletons/Updates.hpp \
src/singletons/WindowManager.hpp \
src/util/AttachToConsole.hpp \
src/util/Clamp.hpp \
src/util/Clipboard.hpp \
src/util/CombinePath.hpp \
src/util/ConcurrentMap.hpp \
src/util/DebugCount.hpp \
src/util/DisplayBadge.hpp \
src/util/DistanceBetweenPoints.hpp \
src/util/ExponentialBackoff.hpp \
src/util/FormatTime.hpp \
src/util/FunctionEventFilter.hpp \
src/util/FuzzyConvert.hpp \
src/util/Helpers.hpp \
src/util/IncognitoBrowser.hpp \
src/util/InitUpdateButton.hpp \
src/util/IrcHelpers.hpp \
src/util/LayoutCreator.hpp \
src/util/LayoutHelper.hpp \
src/util/NuulsUploader.hpp \
src/util/Overloaded.hpp \
src/util/PersistSignalVector.hpp \
src/util/PostToThread.hpp \
src/util/QObjectRef.hpp \
src/util/QStringHash.hpp \
src/util/RapidjsonHelpers.hpp \
src/util/RapidJsonSerializeQString.hpp \
src/util/RatelimitBucket.hpp \
src/util/RemoveScrollAreaBackground.hpp \
src/util/SampleData.hpp \
src/util/SharedPtrElementLess.hpp \
src/util/SplitCommand.hpp \
src/util/StandardItemHelper.hpp \
src/util/StreamerMode.hpp \
src/util/StreamLink.hpp \
src/util/Twitch.hpp \
src/util/WindowsHelper.hpp \
src/widgets/AccountSwitchPopup.hpp \
src/widgets/AccountSwitchWidget.hpp \
src/widgets/AttachedWindow.hpp \
src/widgets/BasePopup.hpp \
src/widgets/BaseWidget.hpp \
src/widgets/BaseWindow.hpp \
src/widgets/dialogs/BadgePickerDialog.hpp \
src/widgets/dialogs/ChannelFilterEditorDialog.hpp \
src/widgets/dialogs/ColorPickerDialog.hpp \
src/widgets/dialogs/EditHotkeyDialog.hpp \
src/widgets/dialogs/EmotePopup.hpp \
src/widgets/dialogs/IrcConnectionEditor.hpp \
src/widgets/dialogs/LastRunCrashDialog.hpp \
src/widgets/dialogs/LoginDialog.hpp \
src/widgets/dialogs/NotificationPopup.hpp \
src/widgets/dialogs/QualityPopup.hpp \
src/widgets/dialogs/SelectChannelDialog.hpp \
src/widgets/dialogs/SelectChannelFiltersDialog.hpp \
src/widgets/dialogs/SettingsDialog.hpp \
src/widgets/dialogs/switcher/AbstractSwitcherItem.hpp \
src/widgets/dialogs/switcher/NewPopupItem.hpp \
src/widgets/dialogs/switcher/NewTabItem.hpp \
src/widgets/dialogs/switcher/QuickSwitcherModel.hpp \
src/widgets/dialogs/switcher/QuickSwitcherPopup.hpp \
src/widgets/dialogs/switcher/SwitchSplitItem.hpp \
src/widgets/dialogs/UpdateDialog.hpp \
src/widgets/dialogs/UserInfoPopup.hpp \
src/widgets/dialogs/WelcomeDialog.hpp \
src/widgets/FramelessEmbedWindow.hpp \
src/widgets/helper/Button.hpp \
src/widgets/helper/ChannelView.hpp \
src/widgets/helper/ColorButton.hpp \
src/widgets/helper/ComboBoxItemDelegate.hpp \
src/widgets/helper/CommonTexts.hpp \
src/widgets/helper/DebugPopup.hpp \
src/widgets/helper/EditableModelView.hpp \
src/widgets/helper/EffectLabel.hpp \
src/widgets/helper/Line.hpp \
src/widgets/helper/NotebookButton.hpp \
src/widgets/helper/NotebookTab.hpp \
src/widgets/helper/QColorPicker.hpp \
src/widgets/helper/RegExpItemDelegate.hpp \
src/widgets/helper/TrimRegExpValidator.hpp \
src/widgets/helper/ResizingTextEdit.hpp \
src/widgets/helper/ScrollbarHighlight.hpp \
src/widgets/helper/SearchPopup.hpp \
src/widgets/helper/SettingsDialogTab.hpp \
src/widgets/helper/SignalLabel.hpp \
src/widgets/helper/TitlebarButton.hpp \
src/widgets/Label.hpp \
src/widgets/listview/GenericItemDelegate.hpp \
src/widgets/listview/GenericListItem.hpp \
src/widgets/listview/GenericListModel.hpp \
src/widgets/listview/GenericListView.hpp \
src/widgets/Notebook.hpp \
src/widgets/Scrollbar.hpp \
src/widgets/settingspages/AboutPage.hpp \
src/widgets/settingspages/AccountsPage.hpp \
src/widgets/settingspages/CommandPage.hpp \
src/widgets/settingspages/ExternalToolsPage.hpp \
src/widgets/settingspages/FiltersPage.hpp \
src/widgets/settingspages/GeneralPage.hpp \
src/widgets/settingspages/GeneralPageView.hpp \
src/widgets/settingspages/HighlightingPage.hpp \
src/widgets/settingspages/IgnoresPage.hpp \
src/widgets/settingspages/KeyboardSettingsPage.hpp \
src/widgets/settingspages/ModerationPage.hpp \
src/widgets/settingspages/NicknamesPage.hpp \
src/widgets/settingspages/NotificationPage.hpp \
src/widgets/settingspages/SettingsPage.hpp \
src/widgets/splits/ClosedSplits.hpp \
src/widgets/splits/InputCompletionItem.hpp \
src/widgets/splits/InputCompletionPopup.hpp \
src/widgets/splits/Split.hpp \
src/widgets/splits/SplitContainer.hpp \
src/widgets/splits/SplitHeader.hpp \
src/widgets/splits/SplitInput.hpp \
src/widgets/splits/SplitOverlay.hpp \
src/widgets/StreamView.hpp \
src/widgets/TooltipWidget.hpp \
src/widgets/Window.hpp \
RESOURCES += \
resources/resources.qrc \
resources/resources_autogenerated.qrc
DISTFILES +=
FORMS += \
src/widgets/dialogs/IrcConnectionEditor.ui \
src/widgets/dialogs/EditHotkeyDialog.ui
# do not use windows min/max macros
#win32 {
# DEFINES += NOMINMAX
#}
linux:isEmpty(PREFIX) {
message("Using default installation prefix (/usr/local). Change PREFIX in qmake command")
PREFIX = /usr/local
}
linux {
desktop.files = resources/com.chatterino.chatterino.desktop
desktop.path = $$PREFIX/share/applications
build_icons.path = .
build_icons.commands = @echo $$PWD && mkdir -p $$PWD/resources/linuxinstall/icons/hicolor/256x256 && cp $$PWD/resources/icon.png $$PWD/resources/linuxinstall/icons/hicolor/256x256/com.chatterino.chatterino.png
icon.files = $$PWD/resources/linuxinstall/icons/hicolor/256x256/com.chatterino.chatterino.png
icon.path = $$PREFIX/share/icons/hicolor/256x256/apps
target.path = $$PREFIX/bin
INSTALLS += desktop build_icons icon target
}
git_commit=$$(GIT_COMMIT)
git_release=$$(GIT_RELEASE)
# Git data
isEmpty(git_commit) {
git_commit=$$system(git rev-parse HEAD)
}
isEmpty(git_release) {
git_release=$$system(git describe)
}
git_hash = $$str_member($$git_commit, 0, 8)
git_modified=$$system(git status --porcelain -z)
# Passing strings as defines requires you to use this weird triple-escape then quotation mark syntax.
# https://stackoverflow.com/questions/3348711/add-a-define-to-qmake-with-a-value/18343449#18343449
DEFINES += CHATTERINO_GIT_COMMIT=\\\"$$git_commit\\\"
DEFINES += CHATTERINO_GIT_RELEASE=\\\"$$git_release\\\"
DEFINES += CHATTERINO_GIT_HASH=\\\"$$git_hash\\\"
!isEmpty(git_modified) {
DEFINES += CHATTERINO_GIT_MODIFIED
}
CONFIG(debug, debug|release) {
message("Building Chatterino2 DEBUG")
} else {
message("Building Chatterino2 RELEASE")
DEFINES += DEBUG_OFF
}
message("Injected git values: $$git_commit ($$git_release) $$git_hash")

View file

@ -3,7 +3,6 @@ openssl/1.1.1m
boost/1.78.0
[generators]
qmake
cmake
[options]

View file

@ -1,14 +0,0 @@
#!/bin/bash
cd ../lib/qBreakpad
echo "Updating qBreakpad's breakpad dependency version"
cd third_party/breakpad
git checkout 7b3afa9258e58a57ffbeb395d445811f92616ae9
cd ../../
cd handler
mkdir build
cd build
qmake ..
echo "Building handler"
make -j8 && "Successfully built qBreakpad"

View file

@ -1,9 +0,0 @@
#!/bin/sh
if [ ! -d build-docker-release ]; then
mkdir build-docker-release
fi
cd build-docker-release
qmake ..
make -j8

View file

@ -1,29 +0,0 @@
#!/usr/bin/python3
import os
import re
import subprocess
dir_path = os.path.dirname(os.path.realpath(__file__))
filename = '../chatterino.pro'
data = ""
with open(filename, 'r') as project:
data = project.read()
sources_list = subprocess.getoutput("find ../src -path ../src/CMakeFiles -prune -false -o -type f -name '*.cpp' | sed 's_\../_ _g'").splitlines()
sources_list.sort(key=str.lower)
sources = "\n".join(sources_list)
sources = re.sub(r'$', r' \\\\', sources, flags=re.MULTILINE)
sources += "\n"
data = re.sub(r'^SOURCES(.|\r|\n)*?^$', 'SOURCES += \\\n' + sources, data, flags=re.MULTILINE)
headers_list = subprocess.getoutput("find ../src -path ../src/CMakeFiles -prune -false -o -type f -name '*.hpp' | sed 's_\../_ _g'").splitlines()
headers_list.sort(key=str.lower)
headers = "\n".join(headers_list)
headers = re.sub(r'$', r' \\\\', headers, flags=re.MULTILINE)
headers += "\n"
data = re.sub(r'^HEADERS(.|\r|\n)*?^$', 'HEADERS += \\\n' + headers, data, flags=re.MULTILINE)
with open(filename, 'w') as project:
project.write(data)