-
Notifications
You must be signed in to change notification settings - Fork 1
79 lines (76 loc) · 2.36 KB
/
linux.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#
# SPDX-FileCopyrightText: 2021-2024 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@v4
with:
repository: 'nayuki/QR-Code-generator'
ref: 'v1.8.0'
fetch-depth: 1
- name: Fetching qrcodegen-cmake sources
uses: actions/checkout@v4
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