Hi,

For those of you who use Hunter for package management with CMake,  its
maintainer has issued a call for support to keep it alive or take over its
maintainership: https://github.com/ruslo/hunter/issues/1921


Hunter is different than vcpkg and Conan, it uses only CMake to do the
package management. It also uses more CMake features than the others.

Let's take pcre2 package for example.  Which has bzip2 and zlib as
dependencies. pcre2 package has a peculiarity when it's built as a static
library, it needs the PCRE2_STATIC definition.

   - Conan <https://github.com/bincrafters/conan-pcre2> pcre2 package.
   - vcpkg <https://github.com/microsoft/vcpkg/tree/master/ports/pcre2> pcre2
   package.
   - Hunter <https://github.com/hunter-packages/pcre2/> pcre2 package.

Conan is not using pcre2's CMake build system, instead the package is being
build with the Conan Python infrastructure. I don't know if in the end
you'll have CMake Module or CMake Config packages.

vcpkg is using  pcre2's CMake build system. It controls it from outside,
and afterwards it does some patching to ensure PCRE2_STATIC works as
expected. vcpkg is using CMake Module packages. In the vcpkg portfile the
zlib and bzip2 dependencies are not mentioned. I assume they are somehow
available in the vcpkg build environment prior to building pcre2.

Hunter is using  pcre2's CMake build system, and it does modify the pcre2's
CMakeLists.txt to call the Hunter CMake API. It handles the dependencies,
and then it properly installs / exports a CMake Config package. In the commit
history <https://github.com/hunter-packages/pcre2/commits/hunter-10.33> you
can see what it takes to import a package in the Hunter repository.

At QTBUG-75578 <https://bugreports.qt.io/browse/QTBUG-75578> there is a
description on how to use Hunter to download / build / install the 3rd
party dependencies of Qt6::Base module, in order to build it on Windows
with MinGW. You only need to edit one CMakeLists.txt file.

I would like to point out that Ruslan Baratov contributed the IPO/LTO
functionality that landed in CMake 3.9.

Cheers,
Cristian.
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

Reply via email to