Skip to content

Add more methods for Minisat/Glucose, fix tests #23

Add more methods for Minisat/Glucose, fix tests

Add more methods for Minisat/Glucose, fix tests #23

Workflow file for this run

name: CI
on: push
jobs:
build-linux:
name: Build on Linux
runs-on: ubuntu-latest
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
steps:
- name: Checkout latest code
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: zulu
java-version: 11
- name: Install meson
run: pip install meson ninja
- name: Set up Gradle
uses: gradle/gradle-build-action@v2
- name: Build project using Gradle
run: ./gradlew build -x test --stacktrace --scan
- name: Build MiniSat
working-directory: kotlin-satlib-jni
env:
CC: gcc
run: |
git clone --depth=1 https://github.com/Lipen/minisat solvers/minisat-src
cd solvers/minisat-src
meson setup builddir --buildtype release --strip --libdir=lib --prefix=$(realpath install)
meson compile -C builddir
meson install -C builddir
- name: Build Glucose
working-directory: kotlin-satlib-jni
run: |
git clone --depth=1 https://github.com/Lipen/glucose solvers/glucose-src
cd solvers/glucose-src
meson setup builddir --buildtype release --strip --libdir=lib --prefix=$(realpath install)
meson compile -C builddir
meson install -C builddir
- name: Build Cadical
working-directory: kotlin-satlib-jni
run: |
git clone --depth=1 https://github.com/Lipen/cadical solvers/cadical-src
cd solvers/cadical-src
meson setup builddir --buildtype release --strip --libdir=lib --prefix=$(realpath install)
meson compile -C builddir
meson install -C builddir
- name: Build CryptoMiniSat
working-directory: kotlin-satlib-jni
run: |
git clone --depth=1 https://github.com/msoos/cryptominisat solvers/cms-src
cd solvers/cms-src
cmake -B build -DENABLE_PYTHON_INTERFACE=OFF -DCMAKE_BUILD_TYPE=Release
cmake --build build -- -j8
cmake --install build --prefix install
strip -s install/lib/libcryptominisat5.so
- name: Fixup libs
working-directory: kotlin-satlib-jni
run: |
ls -al --group-directories-first solvers/*-src/install/lib
cp --remove-destination $(readlink -f solvers/cms-src/install/lib/libcryptominisat5.so) solvers/cms-src/install/lib/libcryptominisat5.so
- name: Set up ld cache
working-directory: kotlin-satlib-jni
run: sudo ldconfig $(realpath solvers/*-src/install/lib)
- name: Build JNI libs
working-directory: kotlin-satlib-jni
run: make libs \
MINISAT_INSTALL_DIR=solvers/minisat-src/install \
GLUCOSE_INSTALL_DIR=solvers/glucose-src/install \
CADICAL_INSTALL_DIR=solvers/cadical-src/install \
CMS_INSTALL_DIR=solvers/cms-src/install
- name: Copy JNI libs to resources folder
working-directory: kotlin-satlib-jni
run: make res
- name: Add Cryptominisat to PATH
working-directory: kotlin-satlib-jni
run: |
echo "$(realpath solvers/cms-src/install/bin)" >> $GITHUB_PATH
- name: Run tests
run: ./gradlew cleanTest test --no-build-cache --stacktrace
- name: Upload to GH Releases
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
kotlin-satlib-jni/build/lib/libjminisat.so
kotlin-satlib-jni/build/lib/libjglucose.so
kotlin-satlib-jni/build/lib/libjcadical.so
kotlin-satlib-jni/build/lib/libjcms.so
kotlin-satlib-jni/solvers/minisat-src/install/lib/libminisat.so
kotlin-satlib-jni/solvers/glucose-src/install/lib/libglucose.so
kotlin-satlib-jni/solvers/cadical-src/install/lib/libcadical.so
kotlin-satlib-jni/solvers/cms-src/install/lib/libcryptominisat5.so
build-windows:
name: Build on Windows
runs-on: windows-2019
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
defaults:
run:
shell: bash
steps:
- name: Checkout latest code
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: zulu
java-version: 11
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install meson
run: pip install meson ninja
- name: Set up Gradle
uses: gradle/gradle-build-action@v2
- name: Build project using Gradle
run: ./gradlew build -x test --stacktrace --scan
- name: Build MiniSat
working-directory: kotlin-satlib-jni
run: |
git clone --depth=1 https://github.com/Lipen/minisat solvers/minisat-src
cd solvers/minisat-src
meson setup builddir --buildtype release --strip --prefix=$(realpath install)
meson compile -C builddir
meson install -C builddir
- name: Build Glucose
working-directory: kotlin-satlib-jni
run: |
git clone --depth=1 https://github.com/Lipen/glucose solvers/glucose-src
cd solvers/glucose-src
meson setup builddir --buildtype release --strip --prefix=$(realpath install)
meson compile -C builddir
meson install -C builddir
- name: Build Cadical
working-directory: kotlin-satlib-jni
run: |
git clone --depth=1 https://github.com/Lipen/cadical solvers/cadical-src
cd solvers/cadical-src
meson setup builddir --buildtype release --strip --prefix=$(realpath install)
meson compile -C builddir
meson install -C builddir
- name: Build CryptoMiniSat
working-directory: kotlin-satlib-jni
run: |
git clone --depth=1 https://github.com/msoos/cryptominisat solvers/cms-src
cd solvers/cms-src
cmake -B build -DENABLE_PYTHON_INTERFACE=OFF -DCMAKE_BUILD_TYPE=Release -G "MinGW Makefiles"
cmake --build build -- -j8
cmake --install build --prefix install
- name: Show libs
working-directory: kotlin-satlib-jni
run: |
ls -al --group-directories-first solvers/*-src/install/lib
- name: Copy solver libs to C:/Windows
working-directory: kotlin-satlib-jni
run: |
cp solvers/minisat-src/install/bin/libminisat.dll C:/Windows/
cp solvers/glucose-src/install/bin/libglucose.dll C:/Windows/
cp solvers/cadical-src/install/bin/libcadical.dll C:/Windows/
cp solvers/cms-src/install/bin/libcryptominisat5win.dll C:/Windows/
- name: Build JNI libs
working-directory: kotlin-satlib-jni
run: |
make libs \
LIB_PREFIX= LIB_EXT=dll \
JAVA_INCLUDE_SUBDIR=win32 \
MINISAT_INSTALL_DIR=solvers/minisat-src/install \
JMINISAT_CXXFLAGS="-D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS" \
GLUCOSE_INSTALL_DIR=solvers/glucose-src/install \
CADICAL_INSTALL_DIR=solvers/cadical-src/install \
CMS_INSTALL_DIR=solvers/cms-src/install \
JCMS_LDLIBS=-lcryptominisat5win
- name: Copy JNI libs to resources folder
working-directory: kotlin-satlib-jni
run: |
make res LIB_PREFIX= LIB_EXT=dll RES_LIB_SUBDIR=win64
- name: Add Cryptominisat to PATH
working-directory: kotlin-satlib-jni
run: |
echo "$(realpath solvers/cms-src/install/bin)" >> $GITHUB_PATH
- name: Run tests
run: ./gradlew cleanTest test --no-build-cache --stacktrace
- name: Upload to GH Releases
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
kotlin-satlib-jni/build/lib/jminisat.dll
kotlin-satlib-jni/build/lib/jglucose.dll
kotlin-satlib-jni/build/lib/jcadical.dll
kotlin-satlib-jni/build/lib/jcms.dll
kotlin-satlib-jni/solvers/minisat-src/install/bin/libminisat.dll
kotlin-satlib-jni/solvers/glucose-src/install/bin/libglucose.dll
kotlin-satlib-jni/solvers/cadical-src/install/bin/libcadical.dll
kotlin-satlib-jni/solvers/cms-src/install/bin/libcryptominisat5win.dll