This is an Orienteering project using CMake, which aims to develop solvers for solving variants of Orienteering problems.
- CMake 3.14+ (3.30+ tested)
- A C++17-compatible compiler
- Linux: g++ or clang++
- macOS: clang++ or g++ (via Homebrew)
- Windows: GCC 13+ via MSYS2 (recommended) or MSVC 2022
- Git
cmake -S . -B build # configure
cmake --build build # build
cmake --build build --target test_orienteeringLib -j4 # build tests
./build/tests/test_orienteeringLib # run tests-
Install CMake 3.14+ - Download from cmake.org
-
Install MSYS2 with GCC 13+:
- Download from msys2.org
- Run the installer and follow setup instructions
- In MSYS2 terminal, run:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake
# Navigate to project directory
cd C:\path\to\orienteering-cpp
# Setup MSYS2 environment (one-time per session)
$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$env:PATH"
# Configure (no external dependencies required)
cmake -S . -B build -G"Unix Makefiles"
# Build the project
cmake --build build -j4
# Run tests
.\build\tests\test_orienteeringLib.exeIf you prefer MSVC, Boost serialization must be installed via vcpkg:
# Install vcpkg and Boost (one-time setup)
git clone https://github.com/Microsoft/vcpkg.git C:\vcpkg
cd C:\vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg install boost-serialization:x64-windows
# Configure and build
cd C:\path\to\orienteering-cpp
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE="C:\vcpkg\scripts\buildsystems\vcpkg.cmake"
cmake --build build --config Release -j4
.\build\tests\Release\test_orienteeringLib.exeNote: MSVC build requires Boost library installation, making setup more complex.
cmake -S . -B build
cmake --build build
cmake --build build --target test_orienteeringLib -j4
./build/tests/test_orienteeringLibbuild/— out-of-source CMake build directory (generated after configuration)cmake/— CMake modules and configuration filesdata/— problem instances and datasets (not included in repo, to be added by users)docs/— documentation and design notesexamples/— example programs and small runnersinclude/— public headerssrc/— library implementation and internal componentstests/— unit tests and test runners
See examples/ for small runnable examples demonstrating setup and
execution.
Contributions are welcome. Please follow the existing CMake layout and add small, focused changes with tests where appropriate.