Files
ortools-clone/makefiles/README.md
Corentin Le Molgat 86edf26855 ci: renaming files
2023-04-11 17:31:25 +02:00

83 lines
5.0 KiB
Markdown

# OR-Tools Makefile Build Instructions
| OS | C++ | Python | Java | .NET |
|:-------- | :---: | :------: | :----: | :----: |
| Linux | [![Status][linux_cpp_svg]][linux_cpp_link] | [![Status][linux_python_svg]][linux_python_link] | [![Status][linux_java_svg]][linux_java_link] | [![Status][linux_dotnet_svg]][linux_dotnet_link] |
| MacOS | [![Status][macos_cpp_svg]][macos_cpp_link] | [![Status][macos_python_svg]][macos_python_link] | [![Status][macos_java_svg]][macos_java_link] | [![Status][macos_dotnet_svg]][macos_dotnet_link] |
| Windows | [![Status][windows_cpp_svg]][windows_cpp_link] | [![Status][windows_python_svg]][windows_python_link] | [![Status][windows_java_svg]][windows_java_link] | [![Status][windows_dotnet_svg]][windows_dotnet_link] |
[linux_cpp_svg]: https://github.com/google/or-tools/actions/workflows/linux_make_cpp.yml/badge.svg?branch=main
[linux_cpp_link]: https://github.com/google/or-tools/actions/workflows/linux_make_cpp.yml
[linux_python_svg]: https://github.com/google/or-tools/actions/workflows/linux_make_python.yml/badge.svg?branch=main
[linux_python_link]: https://github.com/google/or-tools/actions/workflows/linux_make_python.yml
[linux_java_svg]: https://github.com/google/or-tools/actions/workflows/linux_make_java.yml/badge.svg?branch=main
[linux_java_link]: https://github.com/google/or-tools/actions/workflows/linux_make_java.yml
[linux_dotnet_svg]: https://github.com/google/or-tools/actions/workflows/linux_make_dotnet.yml/badge.svg?branch=main
[linux_dotnet_link]: https://github.com/google/or-tools/actions/workflows/linux_make_dotnet.yml
[macos_cpp_svg]: https://github.com/google/or-tools/actions/workflows/macos_make_cpp.yml/badge.svg?branch=main
[macos_cpp_link]: https://github.com/google/or-tools/actions/workflows/macos_make_cpp.yml
[macos_python_svg]: https://github.com/google/or-tools/actions/workflows/macos_make_python.yml/badge.svg?branch=main
[macos_python_link]: https://github.com/google/or-tools/actions/workflows/macos_make_python.yml
[macos_java_svg]: https://github.com/google/or-tools/actions/workflows/macos_make_java.yml/badge.svg?branch=main
[macos_java_link]: https://github.com/google/or-tools/actions/workflows/macos_make_java.yml
[macos_dotnet_svg]: https://github.com/google/or-tools/actions/workflows/macos_make_dotnet.yml/badge.svg?branch=main
[macos_dotnet_link]: https://github.com/google/or-tools/actions/workflows/macos_make_dotnet.yml
[windows_cpp_svg]: https://github.com/google/or-tools/actions/workflows/windows_make_cpp.yml/badge.svg?branch=main
[windows_cpp_link]: https://github.com/google/or-tools/actions/workflows/windows_make_cpp.yml
[windows_python_svg]: https://github.com/google/or-tools/actions/workflows/windows_make_python.yml/badge.svg?branch=main
[windows_python_link]: https://github.com/google/or-tools/actions/workflows/windows_make_python.yml
[windows_java_svg]: https://github.com/google/or-tools/actions/workflows/windows_make_java.yml/badge.svg?branch=main
[windows_java_link]: https://github.com/google/or-tools/actions/workflows/windows_make_java.yml
[windows_dotnet_svg]: https://github.com/google/or-tools/actions/workflows/windows_make_dotnet.yml/badge.svg?branch=main
[windows_dotnet_link]: https://github.com/google/or-tools/actions/workflows/windows_make_dotnet.yml
Dockers [Alpine, Archlinux, Centos, Debian, Fedora, OpenSuse, Ubuntu]x[C++,
Python, Java, .Net]: [![Status][docker_svg]][docker_link]
[docker_svg]: https://github.com/google/or-tools/actions/workflows/docker_make.yml/badge.svg?branch=main
[docker_link]: https://github.com/google/or-tools/actions/workflows/docker_make.yml
## Introduction
<nav for="make"> |
<a href="#requirement">Requirement</a> |
<a href="#dependencies">Dependencies</a> |
<a href="docs/ci.md">CI</a> |
</nav>
OR-Tools comes with a GNU Make based build ([Makefile](../Makefile)) that can be
used on a wide range of platforms.
## Requirement
You'll need:
* `GNU Make >= 4.3`.
* A C++20 compiler (gcc 10 or above)
## Dependencies
OR-Tools depends on severals mandatory libraries. You can compile them all using
the target `third_party` or you can compile few of them and give the
installation directory to the others using the Make variable below.
* ZLIB (`UNIX_ZLIB_DIR` or `WINDOWS_ZLIB_DIR`),
* Google Abseil-cpp (`UNIX_ABSL_DIR` or `WINDOWS_ABSL_DIR`),
* Google Protobuf (`UNIX_PROTOBUF_DIR` or `WINDOWS_PROTOBUF_DIR`),
* SCIP (`UNIX_SCIP_DIR` or `WINDOWS_SCIP_DIR`),
* COIN-OR CoinUtils (`UNIX_COINUTILS_DIR` or `WINDOWS_COINUTILS_DIR`),
* COIN-OR Osi (`UNIX_OSI_DIR` or `WINDOWS_OSI_DIR`),
* COIN-OR Clp (`UNIX_CLP_DIR` or `WINDOWS_CLP_DIR`),
* COIN-OR Cgl (`UNIX_CGL_DIR` or `WINDOWS_CGL_DIR`),
* COIN-OR Cbc (`UNIX_CBC_DIR` or `WINDOWS_CBC_DIR`),
OR-Tools also have few (ed compile time) optional solvers support (disabled by
default):
* CPLEX (`UNIX_CPLEX_DIR` or `WINDOWS_CPLEX_DIR`),
* GLPK (`UNIX_GLPK_DIR` or `WINDOWS_GLPK_DIR`),
* GUROBI (`UNIX_GUROBI_DIR` or `WINDOWS_GUROBI_DIR`),
* XPRESS (`UNIX_XPRESS_DIR` or `WINDOWS_XPRESS_DIR`)
**warning: Since these solvers require license and are proprietary, we can't
test it on public CI and support can be broken.**