Hunter Package Manager
Hunter is a CMake driven cross-platform package manager for C/C++ projects. With the help of Hunter you can organize builds for Linux, Windows, macOS, iOS, Android, Raspberry Pi and other platforms. Third-party external projects are highly customizable, effectively allowing you...
Cost / License
- Free
- Open Source (BSD-2-Clause)
Application type
Platforms
- Mac
- Windows
- Linux
- Self-Hosted
- Raspberry Pi
Features
Properties
- Customizable
Features
- Package Manager
- C++
Tags
- cmake
Hunter Package Manager News & Activities
Recent activities
- POX added Hunter Package Manager as alternative to Crates.io
Hunter Package Manager information
What is Hunter Package Manager?
Hunter is a CMake driven cross-platform package manager for C/C++ projects. With the help of Hunter you can organize builds for Linux, Windows, macOS, iOS, Android, Raspberry Pi and other platforms. Third-party external projects are highly customizable, effectively allowing you to have myriad variants of directories with them based on combinations of version to build, static/shared, CMake -D options, Release/Debug, etc.
Separate root directories will be created for each variant, so they all can be used simultaneously on one machine without conflicts (just like virtualenv but automatically). Going further: each such root directory can be shared between several local projects if configuration of externals matches. So when you are starting another project from scratch and use the same external packages, there will be no additional copy or build triggered; the only overhead is checking the existence of a DONE stamp file for each package. In case your local environment is similar enough to the continuous integration environment of Travis/AppVeyor service, then build will not be triggered at all - cached binaries will be downloaded from GitHub server instead.
Mainly Hunter is designed to manage packages with CMake build system under the hood and existing CMake packages can be quite easily integrated into system, but non-CMake packages are also supported too using custom templates (build schemes) with ExternalProject_Add command(s).

