Using HiGHS from another CMake Project
There are several ways the HiGHS library can be used within another C++ project.
Firstly, make sure that HiGHS is installed locally with the correct CMake flags:
cd HiGHS mkdir build cd build cmake -DFAST_BUILD=ON -DCMAKE_INSTALL_PREFIX=/path_to_highs_install/ .. cmake --build . cmake --install .
This installs HiGHS in
Suppose another C++ CMake project has executable code in some file
main.cpp, which includes
Highs.h. To use the HiGHS library, edit the
CMakeLists.txt as follows:
project(LOAD_HIGHS LANGUAGES CXX) set(HIGHS_DIR path_to_highs_install/lib/cmake/highs) find_package(HIGHS REQUIRED) find_package(Threads REQUIRED) add_executable(main main.cpp) target_link_libraries(main highs::highs)
adds the HiGHS installation path to
HIGHS_DIR. This is equivalent to building this project with
cmake -DHIGHS_DIR=path_to_highs_install/lib/cmake/highs ..
Alternatively, if you wish to include the code of HiGHS within your project, FetchContent is also available as follows:
project(LOAD_HIGHS LANGUAGES CXX) include(FetchContent) FetchContent_Declare( highs GIT_REPOSITORY "https://github.com/ERGO-Code/HiGHS.git" GIT_TAG "bazel" ) set(FAST_BUILD ON CACHE INTERNAL "Fast Build") FetchContent_MakeAvailable(highs) add_executable(main call_from_cpp.cc) target_link_libraries(main highs::highs)