diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000000..b5b9fa6c946 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,67 @@ +name: Build Qt + +on: + workflow_dispatch: +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [ubuntu-18.04, ubuntu-20.04, macos-10.15] # ubuntu-18.04, ubuntu-20.04, macos-10.15, windows-2019, ubuntu-20.04 + + runs-on: ${{ matrix.os }} + env: + BUILD_DIR: "${{ github.workspace }}/../build" + + steps: + - uses: actions/checkout@v2 + + - name: "[All] Make builddir" + run: mkdir ${{ env.BUILD_DIR }} + + # Debian Dependencies + # https://wiki.qt.io/Building_Qt_5_from_Git + + - name: "[Linux] Add Qt Source Dependencies" + if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-18.04' + run: | + sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list + sudo apt-get update + sudo apt-get build-dep qt5-default + + - name: "[Linux] Add Libxcb Dependencies" + if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-18.04' + run: | + sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev + + - name: "[Linux] Add Qt WebEngine Dependencies" + if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-18.04' + run: | + sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxtst-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev libegl1-mesa-dev gperf bison + + - name: "[Linux] Add Qt Multimedia Dependencies - using GStreamer 1.0" + if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-18.04' + run: | + sudo apt-get install libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev + + - name: "[Linux] Add QDoc Documentation Generator Tool Dependencies" + if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-18.04' + run: | + sudo apt install libclang-6.0-dev llvm-6.0 + + - name: "[All] Update submodules" + run: git submodule update --init --recursive + + - name: "[Linux] Configure Qt" + if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-18.04' + working-directory: ${{ env.BUILD_DIR }} + run: ${{ github.workspace }}/configure -opensource -confirm-license -nomake examples -nomake tests -release -platform linux-clang-libc++ + + - name: "[Mac] Configure Qt" + if: matrix.os == 'macos-10.15' + working-directory: ${{ env.BUILD_DIR }} + run: ${{ github.workspace }}/configure -opensource -confirm-license -nomake examples -nomake tests -release -no-framework -platform macx-clang + + - name: "[All] Build Qt" + working-directory: ${{ env.BUILD_DIR }} + run: make -j 4 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000000..ee90e608b85 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,21 @@ + +name: Check Submodule Consistency + +on: + push: + branches: [ 5.15.2 ] + pull_request: + branches: [ 5.15.2 ] + + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: Update submodules + run: git submodule update --init --recursive diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000000..03483562e56 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,64 @@ + +# This is a basic workflow that is manually triggered + +name: Release Qt + +on: + workflow_dispatch: + inputs: + archive_name: + description: 'Archive name' + default: 'qt-everywhere-src-5.15.2' + required: true + +jobs: + make_archive: + runs-on: ubuntu-latest + env: + WORK_DIR: "/home/runner/work/qt5" + + steps: + - uses: actions/checkout@v2 + + - name: Get git-archive-all + working-directory: ${{ env.WORK_DIR }} + run: | + git clone https://github.com/Kentzo/git-archive-all.git + cd git-archive-all + git checkout 1.23.0 + + - name: "[All] Update submodules" + run: git submodule update --init --recursive + + - name: Make archive + working-directory: ${{ env.WORK_DIR }} + run: tar --exclude-vcs -cJf qt-everywhere-src-5.15.2.tar.xz ./qt5 + # run: ../git-archive-all/git_archive_all.py -v --force-submodules ${{ github.event.inputs.archive_name }}.tar.xz + + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + name: ${{ github.event.inputs.archive_name }}.tar.xz + path: ${{ env.WORK_DIR }}/${{ github.event.inputs.archive_name }}.tar.xz + + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: ${{ env.WORK_DIR }}/${{ github.event.inputs.archive_name }}.tar.xz + asset_name: ${{ github.event.inputs.archive_name }}.tar.xz + asset_content_type: application/gzip diff --git a/.gitmodules b/.gitmodules index 07659ad4bcd..b7b2890c79b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,59 +1,59 @@ [submodule "qtbase"] path = qtbase - url = ../qtbase.git + url = https://github.com/qt/qtbase.git branch = 5.15.2 status = essential [submodule "qtsvg"] depends = qtbase path = qtsvg - url = ../qtsvg.git + url = https://github.com/qt/qtsvg.git branch = 5.15.2 status = addon [submodule "qtdeclarative"] depends = qtbase recommends = qtsvg path = qtdeclarative - url = ../qtdeclarative.git + url = https://github.com/qt/qtdeclarative.git branch = 5.15.2 status = essential [submodule "qtactiveqt"] depends = qtbase path = qtactiveqt - url = ../qtactiveqt.git + url = https://github.com/qt/qtactiveqt.git branch = 5.15.2 status = addon [submodule "qtscript"] depends = qtbase recommends = qttools path = qtscript - url = ../qtscript.git + url = https://github.com/qt/qtscript.git branch = 5.15.2 status = deprecated [submodule "qtmultimedia"] depends = qtbase recommends = qtdeclarative path = qtmultimedia - url = ../qtmultimedia.git + url = https://github.com/qt/qtmultimedia.git branch = 5.15.2 status = essential [submodule "qttools"] depends = qtbase recommends = qtdeclarative qtactiveqt path = qttools - url = ../qttools.git + url = https://github.com/qt/qttools.git branch = 5.15.2 status = essential [submodule "qtxmlpatterns"] depends = qtbase recommends = qtdeclarative path = qtxmlpatterns - url = ../qtxmlpatterns.git + url = https://github.com/qt/qtxmlpatterns.git branch = 5.15.2 status = deprecated [submodule "qttranslations"] depends = qttools path = qttranslations - url = ../qttranslations.git + url = https://github.com/qt/qttranslations.git branch = 5.15.2 status = essential priority = 30 @@ -61,20 +61,20 @@ depends = qtdeclarative qttools recommends = qtmultimedia qtquickcontrols qtquickcontrols2 path = qtdoc - url = ../qtdoc.git + url = https://github.com/qt/qtdoc.git branch = 5.15.2 status = essential priority = 40 [submodule "qtrepotools"] path = qtrepotools - url = ../qtrepotools.git + url = https://github.com/qt/qtrepotools.git branch = master status = essential project = - [submodule "qtqa"] depends = qtbase path = qtqa - url = ../qtqa.git + url = https://github.com/qt/qtqa.git branch = master status = essential priority = 50 @@ -82,132 +82,132 @@ depends = qtbase recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport path = qtlocation - url = ../qtlocation.git + url = https://github.com/qt/qtlocation.git branch = 5.15.2 status = addon [submodule "qtsensors"] depends = qtbase recommends = qtdeclarative path = qtsensors - url = ../qtsensors.git + url = https://github.com/qt/qtsensors.git branch = 5.15.2 status = addon [submodule "qtsystems"] depends = qtbase recommends = qtdeclarative path = qtsystems - url = ../qtsystems.git + url = https://github.com/qt/qtsystems.git branch = dev status = ignore [submodule "qtfeedback"] depends = qtdeclarative recommends = qtmultimedia path = qtfeedback - url = ../qtfeedback.git + url = https://github.com/qt/qtfeedback.git branch = master status = ignore [submodule "qtdocgallery"] depends = qtdeclarative path = qtdocgallery - url = ../qtdocgallery.git + url = https://github.com/qt/qtdocgallery.git branch = master status = ignore [submodule "qtpim"] depends = qtdeclarative path = qtpim - url = ../qtpim.git + url = https://github.com/qt/qtpim.git branch = dev status = ignore [submodule "qtconnectivity"] depends = qtbase recommends = qtdeclarative qtandroidextras path = qtconnectivity - url = ../qtconnectivity.git + url = https://github.com/qt/qtconnectivity.git branch = 5.15.2 status = addon [submodule "qtwayland"] depends = qtbase recommends = qtdeclarative path = qtwayland - url = ../qtwayland.git + url = https://github.com/qt/qtwayland.git branch = 5.15.2 status = addon [submodule "qt3d"] depends = qtbase recommends = qtdeclarative qtimageformats qtgamepad path = qt3d - url = ../qt3d.git + url = https://github.com/qt/qt3d.git branch = 5.15.2 status = addon [submodule "qtimageformats"] depends = qtbase path = qtimageformats - url = ../qtimageformats.git + url = https://github.com/qt/qtimageformats.git branch = 5.15.2 status = addon [submodule "qtgraphicaleffects"] depends = qtdeclarative path = qtgraphicaleffects - url = ../qtgraphicaleffects.git + url = https://github.com/qt/qtgraphicaleffects.git branch = 5.15.2 status = essential [submodule "qtquickcontrols"] depends = qtdeclarative recommends = qtgraphicaleffects path = qtquickcontrols - url = ../qtquickcontrols.git + url = https://github.com/qt/qtquickcontrols.git branch = 5.15.2 status = addon [submodule "qtserialbus"] depends = qtbase recommends = qtserialport path = qtserialbus - url = ../qtserialbus.git + url = https://github.com/qt/qtserialbus.git branch = 5.15.2 status = addon [submodule "qtserialport"] depends = qtbase path = qtserialport - url = ../qtserialport.git + url = https://github.com/qt/qtserialport.git branch = 5.15.2 status = addon [submodule "qtx11extras"] depends = qtbase path = qtx11extras - url = ../qtx11extras.git + url = https://github.com/qt/qtx11extras.git branch = 5.15.2 status = addon [submodule "qtmacextras"] depends = qtbase path = qtmacextras - url = ../qtmacextras.git + url = https://github.com/qt/qtmacextras.git branch = 5.15.2 status = addon [submodule "qtwinextras"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtwinextras - url = ../qtwinextras.git + url = https://github.com/qt/qtwinextras.git branch = 5.15.2 status = addon [submodule "qtandroidextras"] depends = qtbase path = qtandroidextras - url = ../qtandroidextras.git + url = https://github.com/qt/qtandroidextras.git branch = 5.15.2 status = addon [submodule "qtwebsockets"] depends = qtbase recommends = qtdeclarative path = qtwebsockets - url = ../qtwebsockets.git + url = https://github.com/qt/qtwebsockets.git branch = 5.15.2 status = addon [submodule "qtwebchannel"] depends = qtbase recommends = qtdeclarative qtwebsockets path = qtwebchannel - url = ../qtwebchannel.git + url = https://github.com/qt/qtwebchannel.git branch = 5.15.2 status = addon [submodule "qtwebengine"] @@ -221,106 +221,106 @@ [submodule "qtcanvas3d"] depends = qtdeclarative path = qtcanvas3d - url = ../qtcanvas3d.git + url = https://github.com/qt/qtcanvas3d.git branch = dev status = ignore [submodule "qtwebview"] depends = qtdeclarative recommends = qtwebengine path = qtwebview - url = ../qtwebview.git + url = https://github.com/qt/qtwebview.git branch = 5.15.2 status = addon [submodule "qtquickcontrols2"] depends = qtgraphicaleffects recommends = qtimageformats path = qtquickcontrols2 - url = ../qtquickcontrols2.git + url = https://github.com/qt/qtquickcontrols2.git branch = 5.15.2 status = essential [submodule "qtpurchasing"] depends = qtbase recommends = qtdeclarative qtandroidextras path = qtpurchasing - url = ../qtpurchasing.git + url = https://github.com/qt/qtpurchasing.git branch = 5.15.2 status = addon [submodule "qtcharts"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtcharts - url = ../qtcharts.git + url = https://github.com/qt/qtcharts.git branch = 5.15.2 status = addon [submodule "qtdatavis3d"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtdatavis3d - url = ../qtdatavis3d.git + url = https://github.com/qt/qtdatavis3d.git branch = 5.15.2 status = addon [submodule "qtvirtualkeyboard"] depends = qtbase qtdeclarative qtsvg recommends = qtmultimedia qtquickcontrols path = qtvirtualkeyboard - url = ../qtvirtualkeyboard.git + url = https://github.com/qt/qtvirtualkeyboard.git branch = 5.15.2 status = addon [submodule "qtgamepad"] depends = qtbase recommends = qtdeclarative path = qtgamepad - url = ../qtgamepad.git + url = https://github.com/qt/qtgamepad.git branch = 5.15.2 status = addon [submodule "qtscxml"] depends = qtbase qtdeclarative path = qtscxml - url = ../qtscxml.git + url = https://github.com/qt/qtscxml.git branch = 5.15.2 status = addon [submodule "qtspeech"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtspeech - url = ../qtspeech.git + url = https://github.com/qt/qtspeech.git branch = 5.15.2 status = addon [submodule "qtnetworkauth"] depends = qtbase path = qtnetworkauth - url = ../qtnetworkauth.git + url = https://github.com/qt/qtnetworkauth.git branch = 5.15.2 status = addon [submodule "qtremoteobjects"] depends = qtbase recommends = qtdeclarative path = qtremoteobjects - url = ../qtremoteobjects.git + url = https://github.com/qt/qtremoteobjects.git branch = 5.15.2 status = addon [submodule "qtwebglplugin"] depends = qtbase qtwebsockets recommends = qtdeclarative path = qtwebglplugin - url = ../qtwebglplugin.git + url = https://github.com/qt/qtwebglplugin.git branch = 5.15.2 status = addon [submodule "qtlottie"] depends = qtbase qtdeclarative path = qtlottie - url = ../qtlottie.git + url = https://github.com/qt/qtlottie.git branch = 5.15.2 status = addon [submodule "qtquicktimeline"] depends = qtbase qtdeclarative path = qtquicktimeline - url = ../qtquicktimeline + url = https://github.com/qt/qtquicktimeline branch = 5.15.2 status = addon [submodule "qtquick3d"] depends = qtbase qtdeclarative path = qtquick3d - url = ../qtquick3d.git + url = https://github.com/qt/qtquick3d.git branch = 5.15.2 status = addon diff --git a/README b/README.md similarity index 96% rename from README rename to README.md index dd4af0d545a..b7673176fe0 100644 --- a/README +++ b/README.md @@ -1,3 +1,5 @@ +[![CI](https://github.com/turtlebrowser/qt5/actions/workflows/ci.yml/badge.svg)](https://github.com/turtlebrowser/qt5/actions/workflows/ci.yml) + HOW TO BUILD QT5 ================