Skip to content

lairdubois/fontanf-mathoptsolverscmake

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MathOptSolversCMake

CMake wrappers for mathematical optimization solvers.

For Artelys Knitro see fontanf/knitrocpp.

Example usage:

# Fetch fontanf/mathoptsolverscmake.
set(MATHOPTSOLVERSCMAKE_USE_CLP ON)
FetchContent_Declare(
    mathoptsolverscmake
    GIT_REPOSITORY https://github.com/fontanf/mathoptsolverscmake.git
    GIT_TAG ...)
    #SOURCE_DIR "${PROJECT_SOURCE_DIR}/../mathoptsolverscmake/")
FetchContent_MakeAvailable(mathoptsolverscmake)

...

target_link_libraries(MyProject_my_target PUBLIC
    MathOptSolversCMake::clp)
  • CLP will automatically be downloaded. It doesn't need to be already installed.
  • Example:
set(MATHOPTSOLVERSCMAKE_USE_CLP ON)

...

target_link_libraries(MyProject_my_target_1 PUBLIC
    MathOptSolversCMake::clp)
  • CBC will automatically be downloaded. It doesn't need to be already installed.
  • Example:
set(MATHOPTSOLVERSCMAKE_USE_CBC ON)

...

target_link_libraries(MyProject_my_target_2 PUBLIC
    MathOptSolversCMake::cbc)
  • FICO Xpress must be installed and a XPRESSDIR environment variable must be properly defined
  • Currently only working on Linux, contributions welcome for Windows and macOS
  • Example:
set(MATHOPTSOLVERSCMAKE_USE_XPRESS ON)

...

target_link_libraries(MyProject_my_target PUBLIC
    MathOptSolversCMake::xpress)
  • IBM® ILOG CPLEX Optimizer must be installed and a CPLEX_HOME environment variable must be properly defined (example: /opt/ibm/ILOG/CPLEX_Studio129/)
  • Currently only working on Linux, contributions welcome for Windows and macOS
  • Example:
set(MATHOPTSOLVERSCMAKE_USE_CPLEX ON)

...

target_link_libraries(MyProject_my_target_1 PUBLIC
    MathOptSolversCMake::cplex)
target_link_libraries(MyProject_my_target_2 PUBLIC
    MathOptSolversCMake::cpoptimizer)
  • Gurobi must be installed and a GUROBI_HOME environment variable must be properly defined (example: /opt/gurobi1003/linux64)
  • The Gurobi C++ interface must have been installed. For example, on Linux:
cd ${GUROBI_HOME}/linux64/src/build/
make
cp libgurobi_c++.a ../../lib/
  • Currently only working on Linux, contributions welcome for Windows and macOS
  • Example:
set(MATHOPTSOLVERSCMAKE_USE_GUROBI ON)

...

target_link_libraries(MyProject_my_target PUBLIC
    MathOptSolversCMake::gurobi)

About

CMake wrappers for mathematical optimization solvers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CMake 100.0%