Don't hardcode /MP #118
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
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 |