Skip to content

Don't hardcode /MP #118

Don't hardcode /MP

Don't hardcode /MP #118

Workflow file for this run

---
name: Build
on: [push]
env:
VERBOSE: 1
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
build_type: [Debug, Release]
name: [gcc, clang, windows, clang-cfi]
build_shared_libs: [ON, OFF]
include:
- name: gcc
ar: /usr/bin/ar
cxx: /usr/bin/g++-11
ranlib: /usr/bin/ranlib
os: ubuntu-22.04
buildall: all
cxx_flags: -fno-omit-frame-pointer -g -O0
ld_flags: -Wl,-O0
- name: clang
ar: /usr/bin/llvm-ar-14
cxx: /usr/bin/clang++-14
ranlib: /usr/bin/llvm-ranlib-14
os: ubuntu-22.04
buildall: all
cxx_flags: -fno-omit-frame-pointer -g -O0
ld_flags: -Wl,-O0
- name: windows
cxx: cl
os: windows-latest
buildall: ALL_BUILD
cxx_flags: /MP
- name: clang-cfi
ar: /usr/bin/llvm-ar-14
cxx: /usr/bin/clang++-14
ranlib: /usr/bin/llvm-ranlib-14
os: ubuntu-22.04
buildall: all
cxx_flags: -fno-omit-frame-pointer -g -O0 -fsanitize=cfi -flto=thin -fvisibility=hidden -fno-sanitize-trap=cfi
ld_flags: -fuse-ld=gold -Wl,-O0
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install gcc
if: contains(matrix.cxx, '/g++')
run: sudo apt-get install -yq g++-11 gcc-11
- name: Install clang
if: contains(matrix.cxx, 'clang++')
run: sudo apt-get install -yq clang-14 llvm-14
- name: Install NSIS (Linux)
if: contains(matrix.os, 'ubuntu')
run: sudo apt-get install -yq nsis
- name: Install NSIS (Windows)
if: contains(matrix.os, 'windows')
run: |
iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
scoop bucket add extras
scoop install nsis
- name: cmake lib
run: |
mkdir build_lib
cmake -S library -B build_lib -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install_path" -DCMAKE_CXX_COMPILER="${{ matrix.cxx }}" -DCMAKE_AR="${{ matrix.ar }}" -DCMAKE_RANLIB="${{ matrix.ranlib }}" -DBUILD_SHARED_LIBS:BOOL=${{ matrix.build_shared_libs }} -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" -DCMAKE_EXE_LINKER_FLAGS="${{ matrix.ld_flags }}" -DCMAKE_CXX_STANDARD=20 || exit 1
cmake --build build_lib/ --target ${{ matrix.buildall }} --config ${{ matrix.build_type }} || exit 1
cmake --build build_lib/ --target install --config ${{ matrix.build_type }} || exit 1
cd build_lib || exit 1
cpack -C ${{ matrix.build_type }} || exit 1
cd .. || exit 1
- name: ctest lib
shell: bash
run: |
cd build_lib || exit 1
ctest -O test-result.xml --output-on-failure --verbose -C ${{ matrix.build_type }} || exit 1
cd .. || exit 1
- name: cmake lib2
run: |
mkdir build_lib2
cmake -S library2 -B build_lib2 -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -Dlibrary_DIR="${{ github.workspace }}/install_path/lib/cmake/library" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install_path" -DCMAKE_CXX_COMPILER="${{ matrix.cxx }}" -DCMAKE_AR="${{ matrix.ar }}" -DCMAKE_RANLIB="${{ matrix.ranlib }}" -DBUILD_SHARED_LIBS:BOOL=${{ matrix.build_shared_libs }} -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" -DCMAKE_EXE_LINKER_FLAGS="${{ matrix.ld_flags }}" -DCMAKE_CXX_STANDARD=20 || exit 1
cmake --build build_lib2/ --target ${{ matrix.buildall }} --config ${{ matrix.build_type }} || exit 1
cmake --build build_lib2/ --target install --config ${{ matrix.build_type }} || exit 1
cd build_lib2 || exit 1
cpack -C ${{ matrix.build_type }} || exit 1
cd .. || exit 1
- name: ctest lib2
shell: bash
run: |
cd build_lib2 || exit 1
ctest -O test-result.xml --output-on-failure --verbose -C ${{ matrix.build_type }} || exit 1
cd .. || exit 1
- name: cmake lib3
run: |
mkdir build_lib3
cmake -S library3 -B build_lib3 -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -Dlibrary_DIR="${{ github.workspace }}/install_path/lib/cmake/library" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install_path" -DCMAKE_CXX_COMPILER="${{ matrix.cxx }}" -DCMAKE_AR="${{ matrix.ar }}" -DCMAKE_RANLIB="${{ matrix.ranlib }}" -DBUILD_SHARED_LIBS:BOOL=${{ matrix.build_shared_libs }} -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" -DCMAKE_EXE_LINKER_FLAGS="${{ matrix.ld_flags }}" -DCMAKE_CXX_STANDARD=20 || exit 1
cmake --build build_lib3/ --target ${{ matrix.buildall }} --config ${{ matrix.build_type }} || exit 1
cmake --build build_lib3/ --target install --config ${{ matrix.build_type }} || exit 1
cd build_lib3 || exit 1
cpack -C ${{ matrix.build_type }} || exit 1
cd .. || exit 1
- name: ctest lib3
shell: bash
run: |
cd build_lib3 || exit 1
ctest -O test-result.xml --output-on-failure --verbose -C ${{ matrix.build_type }} || exit 1
cd .. || exit 1
- name: cmake lib4
run: |
mkdir build_lib4
cmake -S library4 -B build_lib4 -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -Dlibrary_DIR="${{ github.workspace }}/install_path/lib/cmake/library" -Dlibrary2_DIR="${{ github.workspace }}/install_path/lib/cmake/library2" -Dlibrary3_DIR="${{ github.workspace }}/install_path/lib/cmake/library3" -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install_path" -DCMAKE_CXX_COMPILER="${{ matrix.cxx }}" -DCMAKE_AR="${{ matrix.ar }}" -DCMAKE_RANLIB="${{ matrix.ranlib }}" -DBUILD_SHARED_LIBS:BOOL=${{ matrix.build_shared_libs }} -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" -DCMAKE_EXE_LINKER_FLAGS="${{ matrix.ld_flags }}" -DCMAKE_CXX_STANDARD=20 || exit 1
cmake --build build_lib4/ --target ${{ matrix.buildall }} --config ${{ matrix.build_type }} || exit 1
cmake --build build_lib4/ --target install --config ${{ matrix.build_type }} || exit 1
cd build_lib4 || exit 1
cpack -C ${{ matrix.build_type }} || exit 1
cd .. || exit 1
- name: ctest lib4
shell: bash
run: |
cd build_lib4 || exit 1
ctest -O test-result.xml --output-on-failure --verbose -C ${{ matrix.build_type }} || exit 1
cd .. || exit 1
- name: cmake main
run: |
mkdir main
cmake -S extern -B main -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -Dlibrary_DIR="${{ github.workspace }}/install_path/lib/cmake/library" -Dlibrary2_DIR="${{ github.workspace }}/install_path/lib/cmake/library2" -Dlibrary3_DIR="${{ github.workspace }}/install_path/lib/cmake/library3" -Dlibrary4_DIR="${{ github.workspace }}/install_path/lib/cmake/library4" -DCMAKE_CXX_COMPILER="${{ matrix.cxx }}" -DCMAKE_AR="${{ matrix.ar }}" -DCMAKE_RANLIB="${{ matrix.ranlib }}" -DBUILD_SHARED_LIBS:BOOL=${{ matrix.build_shared_libs }} -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" -DCMAKE_EXE_LINKER_FLAGS="${{ matrix.ld_flags }}" -DCMAKE_CXX_STANDARD=20 || exit 1
cmake --build main/ --target ${{ matrix.buildall }} --config ${{ matrix.build_type }} || exit 1
- name: ctest main
shell: bash
run: |
cd main || exit 1
ctest -O test-result.xml --output-on-failure --verbose -C ${{ matrix.build_type }} || exit 1
cd .. || exit 1