.. spelling:: kung fu
Set HUNTER_ROOT environment variable to an empty directory. This
directory will be used by HunterGate
module for storing packages and
utility files. Using environment variable is recommended but not mandatory,
see other options.
Set minimum CMake version:
cmake_minimum_required(VERSION 3.5)
Copy HunterGate module to your project and include it:
> mkdir cmake
> wget https://raw.githubusercontent.com/cpp-pm/gate/master/cmake/HunterGate.cmake -O cmake/HunterGate.cmake
include("cmake/HunterGate.cmake")
This module will download archive automatically from URL
that you provide
to the HUNTER_ROOT
directory (it means that there is no need to clone
this repository in general, see notes):
HunterGate(
URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz"
SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3"
)
Now project can be started:
project(Foo)
Let's download and install boost.{regex,system,filesystem}
:
hunter_add_package(Boost COMPONENTS regex system filesystem)
Hunter part is done, now well known CMake-style kung fu (see :ref:`pkg.Boost`):
find_package(Boost CONFIG REQUIRED regex system filesystem)
add_executable(foo foo.cpp)
target_link_libraries(foo PUBLIC Boost::regex Boost::system Boost::filesystem)
Summarize:
cmake_minimum_required(VERSION 3.5)
include("cmake/HunterGate.cmake")
HunterGate(
URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz"
SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3"
)
project(Foo)
hunter_add_package(Boost COMPONENTS regex system filesystem)
find_package(Boost CONFIG REQUIRED regex system filesystem)
add_executable(foo foo.cpp)
target_link_libraries(foo PUBLIC Boost::regex Boost::system Boost::filesystem)
Build it:
> cmake -H. -B_builds -DHUNTER_STATUS_DEBUG=ON -DCMAKE_BUILD_TYPE=Release
> cmake --build _builds --config Release