3.2 KiB
OR-Tools CMake Build Instructions
OR-Tools comes with a CMake build script (CMakeLists.txt) that can be used on a wide range of platforms (the "C" stands for cross-platform). If you don't have CMake installed already, you can download it for free from http://www.cmake.org/.
CMake works by generating native Makefiles or build projects that can be used in
the compiler environment of your choice.
You can either build OR-Tools with
CMake as a standalone project or it can be incorporated into an existing CMake
project.
warning: Currently OR-Tools CMake doesn't support Java nor C#.
Table of Contents
- Building OR-Tools with CMake
- Consuming OR-Tools in a CMake Project
- Incorporating OR-Tools into a CMake Project
For API/ABI compatibility reasons, if you will be using OR-Tools inside a larger
C++ project, we recommend using CMake and incorporate OR-Tools as a CMake
subproject (i.e. using add_sudirectory()).
Building OR-Tools with CMake
When building OR-Tools as a standalone project on Unix-like systems with GNU Make, the typical workflow is:
- Get the source code and change to it.
git clone https://github.com/google/or-tools.git
cd or-tools
- Run CMake to configure the build tree.
cmake -H. -Bbuild -G "Unix Makefiles"
note: To get the list of available generators (e.g. Visual Studio), use -G ""
- Afterwards, generated files can be used to compile the project.
cmake --build build
- Test the build software (optional).
cmake --build build --target test
- Install the built files (optional).
cmake --build build --target install
Consuming OR-Tools in a CMake Project
If you already have OR-Tools installed in your system, you can use the CMake
command
find_package()
to include OR-Tools in your C++ CMake Project.
cmake_minimum_required(VERSION 3.0.2)
project(myproj VERSION 1.0)
find_package(ortools CONFIG REQUIRED)
add_executable(myapp main.cpp)
target_link_libraries(myapp ortools::ortools)
Include directories, compile definitions and compile options will be added automatically to your target as needed.
Incorporating OR-Tools into a CMake Project
The recommendations below are similar to those for using CMake within the googletest framework (https://github.com/google/googletest/blob/master/googletest/README.md#incorporating-into-an-existing-cmake-project)
Thus, you can use the CMake command
add_subdirectory()
to include OR-Tools directly from a subdirectory of your C++ CMake project.
Note: The ortools::ortools target is in this case an ALIAS library target
for the ortools library target.
cmake_minimum_required(VERSION 3.0.2)
project(myproj VERSION 1.0)
add_subdirectory(or-tools)
add_executable(myapp main.cpp)
target_link_libraries(myapp ortools::ortools)
Again, include directories, compile definitions and compile options will be added automatically to your target as needed.