Skip to content

crillab/universe

Repository files navigation

UNIvERSE - mUlti laNguage unIfied intErface foR conStraint solvErs

License: LGPL v3 Build Status

Description

UNIVERSE library proposes generic interfaces for combinatorial problems solvers.

These interfaces are described in the following diagrams :

Solvers Interface

Universe offers an interface for create Solver. This interface follows the factory design pattern and is described in the following diagrams:

factory

Build

The latest release is available here

UNIVERSE is developed using C++ 17, CMake 3.23. Installing CMake is required if you want to build from source. To do so, after having installed all the needed tools, you will need to clone the project:

git clone https://github.com/crillab/universe.git --recursive
cd universe
mkdir build
cd build 
cmake .. -DCMAKE_BUILD_TYPE=RELEASE
cmake --build . 

Using CMake

This library is designed for simplified use in projects using CMake. To use this project, it is possible to create a sub-module in your project with the following commands:

git submodule add https://github.com/crillab/universe libs/universe
git submodule update --remote --recursive --init

And then add the following instructions in your CMakeLists.txt file:

add_subdirectory(libs/universe)
add_executable(your_solver solver.h solver.cpp)
target_link_libraries(your_solver universe)

Dependencies