123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- name: Building(CMake)
- on:
- push:
- branches: [ master ]
- paths-ignore:
- - 'README.md'
- - 'LICENSE'
- pull_request:
- branches: [ master ]
- paths-ignore:
- - 'README.md'
- - 'LICENSE'
- env:
- # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
- BUILD_TYPE: RelWithDebInfo
- jobs:
- linux-build:
- name: ${{ matrix.os}}
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ubuntu-22.04]
- steps:
- - name: Checkout Source code
- if: github.event_name == 'push'
- uses: actions/checkout@v4
- - name: Checkout Source code
- if: github.event_name == 'pull_request'
- uses: actions/checkout@v4
- with:
- ref: ${{ github.event.pull_request.head.sha }}
- - name: Install Dependencies
- run: |
- sudo apt-get -y -qq update
- sudo apt-get -y --no-install-recommends install \
- cmake \
- extra-cmake-modules \
- build-essential \
- qtbase5-dev \
- qttools5-dev-tools \
- qttools5-dev \
- libqt5dbus5 \
- libqt5network5 \
- libqt5core5a \
- libqt5widgets5 \
- libqt5gui5 \
- libqt5svg5-dev
- - name: Create Build Environment
- # Some projects don't allow in-source building, so create a separate build directory
- # We'll use this as our working directory for all subsequent commands
- run: cmake -E make_directory ${{runner.workspace}}/build
- - name: Configure CMake
- # Use a bash shell so we can use the same syntax for environment variable
- # access regardless of the host operating system
- shell: bash
- working-directory: ${{runner.workspace}}/build
- # Note the current convention is to use the -S and -B options here to specify source
- # and build directories, but this is only available with CMake 3.13 and higher.
- # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
- #
- # We need to source the profile file to make sure conan is in PATH
- run: |
- cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE
- - name: Build
- working-directory: ${{runner.workspace}}/build
- shell: bash
- # Execute the build. You can specify a specific target with "--target <NAME>"
- run: cmake --build . --config $BUILD_TYPE
- - name: Test
- working-directory: ${{runner.workspace}}/build
- shell: bash
- # Execute tests defined by the CMake configuration.
- # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
- run: ctest -C $BUILD_TYPE
- windows-build:
- runs-on: ${{ matrix.config.os }}
- strategy:
- fail-fast: false
- matrix:
- config:
- - {
- name: "Windows 2019 MSVC",
- artifact: "Windows-MSVC.tar.xz",
- os: windows-2019,
- cc: "cl", cxx: "cl",
- environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
- }
- steps:
- - uses: actions/checkout@v4
- - name: Cache Qt
- id: cache-qt
- uses: actions/cache@v3
- with:
- path: ./build/Qt
- key: ${{ runner.os }}-QtCache
- - name: Install Qt
- uses: jurplel/install-qt-action@v2
- with:
- version: 5.15.2
- target: desktop
- dir: '${{ github.workspace }}/build/'
- - name: Configure
- working-directory: build
- shell: powershell
- run: |
- cmake -DCMAKE_BUILD_TYPE=$env:BUILD_TYPE ../
- - name: Build
- working-directory: build
- shell: powershell
- run: |
- cmake --build . --config $env:BUILD_TYPE
|