Skip to content

Merge pull request #22 from delta512/components #15

Merge pull request #22 from delta512/components

Merge pull request #22 from delta512/components #15

Workflow file for this run

#
# SPDX-FileCopyrightText: 2021-2023 EasyCoding Team and contributors
#
# SPDX-License-Identifier: MIT
#
name: Linux CI
on:
push:
branches:
- 'master'
pull_request:
branches:
- 'master'
jobs:
build:
name: Build, test and install project
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler: ['clang', 'gcc']
include:
- compiler: 'clang'
cc: 'clang'
cxx: 'clang++'
- compiler: 'gcc'
cc: 'gcc'
cxx: 'g++'
steps:
- name: Fetching QR-Code-generator sources
uses: actions/checkout@v3
with:
repository: 'nayuki/QR-Code-generator'
ref: 'v1.8.0'
fetch-depth: 1
- name: Fetching qrcodegen-cmake sources
uses: actions/checkout@v3
with:
path: 'qrcodegen-cmake'
- name: Copying CMake build files
run: |
ln -s qrcodegen-cmake/cmake .
ln -s qrcodegen-cmake/CMakeLists.txt .
- name: Updating apt package metadata
run: |
sudo apt-get update
- name: Installing compiler ${{ matrix.compiler }}
run: |
sudo apt-get -y install ${{ matrix.compiler }}
- name: Installing build system
run: |
sudo apt-get -y install cmake make
- name: Building project with CMake
run: |
cmake -S . -B build \
-DCMAKE_C_COMPILER=${{ matrix.cc }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DBUILD_EXAMPLES:BOOL=ON \
-DBUILD_TESTS:BOOL=ON
cmake --build build
env:
CFLAGS: -O2 -fexceptions -pipe -Wall -Wextra -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -fstack-protector-strong -fasynchronous-unwind-tables -fcf-protection
CXXFLAGS: -O2 -fexceptions -pipe -Wall -Wextra -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -fstack-protector-strong -fasynchronous-unwind-tables -fcf-protection
LDFLAGS: -Wl,-z,relro -Wl,--as-needed -Wl,-z,now
- name: Running unit tests with CTest
run: |
pushd build
ctest --output-on-failure
popd
- name: Installing project with CMake
run: |
sudo cmake --install build