From 044dd8a616e0b712eaf6cb954cd7b999aed18b06 Mon Sep 17 00:00:00 2001 From: Mm2PL Date: Sat, 23 Jul 2022 14:04:29 +0200 Subject: [PATCH] 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 --- .CI/CreateAppImage.sh | 4 +- .CI/InstallQTStylePlugins.sh | 6 - .cirrus.yml | 4 +- .docker/Dockerfile.build | 22 - .docker/qt-installer-noninteractive.qs | 81 --- .github/workflows/build.yml | 115 +--- BUILDING_ON_FREEBSD.md | 19 +- BUILDING_ON_LINUX.md | 89 +--- BUILDING_ON_MAC.md | 21 +- BUILDING_ON_WINDOWS.md | 2 +- CHANGELOG.md | 3 +- CMakeLists.txt | 2 + Jenkinsfile | 20 - _.travis.yml | 98 ---- appveyor.yml | 65 --- chatterino.pro | 699 ------------------------- conanfile.txt | 1 - tools/build-breakpad-linux.sh | 14 - tools/docker/build.sh | 9 - tools/update_filelist.py | 29 - 20 files changed, 71 insertions(+), 1232 deletions(-) delete mode 100755 .CI/InstallQTStylePlugins.sh delete mode 100644 .docker/Dockerfile.build delete mode 100644 .docker/qt-installer-noninteractive.qs delete mode 100644 Jenkinsfile delete mode 100644 _.travis.yml delete mode 100644 appveyor.yml delete mode 100644 chatterino.pro delete mode 100755 tools/build-breakpad-linux.sh delete mode 100755 tools/docker/build.sh delete mode 100755 tools/update_filelist.py diff --git a/.CI/CreateAppImage.sh b/.CI/CreateAppImage.sh index 4a3c6c842..486c14ff6 100755 --- a/.CI/CreateAppImage.sh +++ b/.CI/CreateAppImage.sh @@ -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 diff --git a/.CI/InstallQTStylePlugins.sh b/.CI/InstallQTStylePlugins.sh deleted file mode 100755 index 37a0fc3c1..000000000 --- a/.CI/InstallQTStylePlugins.sh +++ /dev/null @@ -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 - diff --git a/.cirrus.yml b/.cirrus.yml index d21e6028f..94c6d2059 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -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) diff --git a/.docker/Dockerfile.build b/.docker/Dockerfile.build deleted file mode 100644 index d87cd2cc5..000000000 --- a/.docker/Dockerfile.build +++ /dev/null @@ -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"] diff --git a/.docker/qt-installer-noninteractive.qs b/.docker/qt-installer-noninteractive.qs deleted file mode 100644 index d941e5bb6..000000000 --- a/.docker/qt-installer-noninteractive.qs +++ /dev/null @@ -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); - -} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f7c45ca2d..397d49c2c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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 diff --git a/BUILDING_ON_FREEBSD.md b/BUILDING_ON_FREEBSD.md index 25f17f8b9..8a1deeeba 100644 --- a/BUILDING_ON_FREEBSD.md +++ b/BUILDING_ON_FREEBSD.md @@ -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 + ``` diff --git a/BUILDING_ON_LINUX.md b/BUILDING_ON_LINUX.md index 31151d706..5ee3f4d48 100644 --- a/BUILDING_ON_LINUX.md +++ b/BUILDING_ON_LINUX.md @@ -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 + ``` diff --git a/BUILDING_ON_MAC.md b/BUILDING_ON_MAC.md index 76b453951..cedfc5c0e 100644 --- a/BUILDING_ON_MAC.md +++ b/BUILDING_ON_MAC.md @@ -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 diff --git a/BUILDING_ON_WINDOWS.md b/BUILDING_ON_WINDOWS.md index 56f5a0f6c..8533f02fa 100644 --- a/BUILDING_ON_WINDOWS.md +++ b/BUILDING_ON_WINDOWS.md @@ -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". diff --git a/CHANGELOG.md b/CHANGELOG.md index e2535c1f6..d2f8582eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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) diff --git a/CMakeLists.txt b/CMakeLists.txt index 796116f63..571bb1637 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 621ef91eb..000000000 --- a/Jenkinsfile +++ /dev/null @@ -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' - } - } - } - } - } -} diff --git a/_.travis.yml b/_.travis.yml deleted file mode 100644 index ef5534334..000000000 --- a/_.travis.yml +++ /dev/null @@ -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 diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 037c17780..000000000 --- a/appveyor.yml +++ /dev/null @@ -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 diff --git a/chatterino.pro b/chatterino.pro deleted file mode 100644 index 8c09d2348..000000000 --- a/chatterino.pro +++ /dev/null @@ -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") diff --git a/conanfile.txt b/conanfile.txt index fdf0ee03b..3c3ff3169 100644 --- a/conanfile.txt +++ b/conanfile.txt @@ -3,7 +3,6 @@ openssl/1.1.1m boost/1.78.0 [generators] -qmake cmake [options] diff --git a/tools/build-breakpad-linux.sh b/tools/build-breakpad-linux.sh deleted file mode 100755 index 7d343ce6a..000000000 --- a/tools/build-breakpad-linux.sh +++ /dev/null @@ -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" diff --git a/tools/docker/build.sh b/tools/docker/build.sh deleted file mode 100755 index 676567793..000000000 --- a/tools/docker/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -if [ ! -d build-docker-release ]; then - mkdir build-docker-release -fi - -cd build-docker-release -qmake .. -make -j8 diff --git a/tools/update_filelist.py b/tools/update_filelist.py deleted file mode 100755 index 5f020872b..000000000 --- a/tools/update_filelist.py +++ /dev/null @@ -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) -