cpptrace/.github/workflows/build.yml
2023-07-02 21:23:35 -04:00

162 lines
4.7 KiB
YAML

name: build
on:
push:
pull_request:
jobs:
build-linux:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
compiler: [g++-10, clang++-14]
target: [Debug]
std: [11, 20]
unwind: [
CPPTRACE_UNWIND_WITH_EXECINFO,
CPPTRACE_UNWIND_WITH_NOTHING,
]
symbols: [
CPPTRACE_GET_SYMBOLS_WITH_LIBBACKTRACE,
CPPTRACE_GET_SYMBOLS_WITH_NOTHING,
]
demangle: [
CPPTRACE_DEMANGLE_WITH_CXXABI,
CPPTRACE_DEMANGLE_WITH_NOTHING,
]
steps:
- uses: actions/checkout@v2
- name: dependencies
run: sudo apt install gcc-10 g++-10 libgcc-10-dev
- name: build
run: |
mkdir -p build
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=${{matrix.target}} \
-DCMAKE_CXX_COMPILER=${{matrix.compiler}} \
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
-D${{matrix.unwind}}=On \
-D${{matrix.symbols}}=On \
-D${{matrix.demangle}}=On \
-DCPPTRACE_BACKTRACE_PATH=/usr/lib/gcc/x86_64-linux-gnu/10/include/backtrace.h
make
build-windows:
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
compiler: [cl, clang++]
target: [Debug]
std: [11, 20]
unwind: [
CPPTRACE_UNWIND_WITH_WINAPI,
CPPTRACE_UNWIND_WITH_NOTHING,
]
symbols: [
CPPTRACE_GET_SYMBOLS_WITH_DBGHELP,
CPPTRACE_GET_SYMBOLS_WITH_NOTHING,
]
demangle: [
# CPPTRACE_DEMANGLE_WITH_CXXABI,
CPPTRACE_DEMANGLE_WITH_NOTHING,
]
exclude:
- demangle: CPPTRACE_DEMANGLE_WITH_CXXABI
compiler: cl
steps:
- uses: actions/checkout@v2
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1.10.0
- name: build
run: |
mkdir -p build
cd build
cmake .. `
-DCMAKE_BUILD_TYPE=Debug `
-DCMAKE_CXX_COMPILER=${{matrix.compiler}} `
-DCMAKE_CXX_STANDARD=${{matrix.std}} `
-D${{matrix.unwind}}=On `
-D${{matrix.symbols}}=On `
-D${{matrix.demangle}}=On
msbuild .\cpptrace.sln
build-linux-full-or-auto:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
compiler: [g++-10, clang++-14]
target: [Debug]
std: [11, 20]
config: ["-DCPPTRACE_FULL_TRACE_WITH_LIBBACKTRACE=On", ""]
steps:
- uses: actions/checkout@v2
- name: dependencies
run: sudo apt install gcc-10 g++-10 libgcc-10-dev
- name: build
run: |
mkdir -p build
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=${{matrix.target}} \
-DCMAKE_CXX_COMPILER=${{matrix.compiler}} \
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
-DCPPTRACE_BACKTRACE_PATH=/usr/lib/gcc/x86_64-linux-gnu/10/include/backtrace.h \
${{matrix.config}}
make
# TODO: -DCMAKE_CXX_STANDARD isn't being honored?
# build-linux-full-or-auto-23:
# runs-on: ubuntu-22.04
# strategy:
# fail-fast: false
# matrix:
# compiler: [g++-12, clang++-14]
# target: [Debug]
# std: [23]
# config: ["-DCPPTRACE_FULL_TRACE_WITH_STACKTRACE=On", ""]
# exclude:
# - config: "-DCPPTRACE_FULL_TRACE_WITH_STACKTRACE=On"
# compiler: clang++-14
# steps:
# - uses: actions/checkout@v2
# - name: dependencies
# run: sudo apt install gcc-12 g++-12 libgcc-12-dev
# - name: build
# run: |
# mkdir -p build
# cd build
# cmake .. \
# -DCMAKE_BUILD_TYPE=${{matrix.target}} \
# -DCMAKE_CXX_COMPILER=${{matrix.compiler}} \
# -DCMAKE_CXX_STANDARD=${{matrix.std}} \
# -DCPPTRACE_BACKTRACE_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/include/backtrace.h \
# ${{matrix.config}}
# make
build-windows-full-or-auto:
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
compiler: [cl, clang++]
target: [Debug]
std: [11, 20]
config: [""]
exclude:
- config: -DCPPTRACE_FULL_TRACE_WITH_LIBBACKTRACE=On # TODO
steps:
- uses: actions/checkout@v2
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1.10.0
- name: build
run: |
mkdir -p build
cd build
cmake .. `
-DCMAKE_BUILD_TYPE=Debug `
-DCMAKE_CXX_COMPILER=${{matrix.compiler}} `
-DCMAKE_CXX_STANDARD=${{matrix.std}} `
${{matrix.config}}
msbuild .\cpptrace.sln