Improve documentation and usability #182
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: CMake | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Release | |
jobs: | |
build: | |
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. | |
# You can convert this to a matrix build if you need cross-platform coverage. | |
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
# install flex/bison | |
sudo apt-get purge -y flex | |
sudo apt-get purge -y bison | |
sudo apt-get install -y flex bison | |
sudo apt-get autoremove | |
# install graphviz | |
sudo apt-get install graphviz libgraphviz-dev | |
# build slugs | |
sudo apt install -y libboost-all-dev | |
cd submodules/slugs/src && make -j | |
- name: Install Z3 | |
run: | | |
wget https://github.com/Z3Prover/z3/releases/download/z3-4.8.12/z3-4.8.12-x64-glibc-2.31.zip | |
unzip z3-4.8.12-x64-glibc-2.31.zip | |
cd z3-4.8.12-x64-glibc-2.31 | |
sudo cp bin/libz3.a /usr/local/lib | |
sudo cp include/*.h /usr/local/include | |
- name: Install CUDD | |
run: | | |
git clone --recursive https://github.com/KavrakiLab/cudd.git | |
cd cudd | |
autoreconf -i | |
./configure --enable-silent-rules --enable-obj --enable-dddmp | |
sudo make -j install | |
- name: Install MONA | |
run: | | |
git clone --recursive https://github.com/whitemech/MONA.git | |
cd MONA | |
git checkout v1.4-19.dev0 | |
./configure && make -j && sudo make -j install | |
# copy headers manually | |
sudo mkdir -p /usr/local/include/mona | |
sudo cp Mem/mem.h /usr/local/include/mona | |
sudo cp Mem/gnuc.h /usr/local/include/mona | |
sudo cp Mem/dlmalloc.h /usr/local/include/mona | |
sudo cp BDD/bdd_external.h /usr/local/include/mona | |
sudo cp BDD/bdd_dump.h /usr/local/include/mona | |
sudo cp BDD/bdd_internal.h /usr/local/include/mona | |
sudo cp BDD/bdd.h /usr/local/include/mona | |
sudo cp BDD/hash.h /usr/local/include/mona | |
sudo cp DFA/dfa.h /usr/local/include/mona | |
sudo cp GTA/gta.h /usr/local/include/mona | |
sudo cp config.h /usr/local/include/mona | |
- name: Configure CMake | |
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | |
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | |
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DZ3_FETCH=OFF | |
- name: Build | |
# Build your program with the given configuration | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j | |
- name: Test | |
working-directory: ${{github.workspace}}/build | |
# Execute tests defined by the CMake configuration. | |
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | |
# TODO: disable Lydia tests, temporarily run them manually | |
# run: ctest -C ${{env.BUILD_TYPE}} | |
run: ${{github.workspace}}/build/bin/tests |