<commit_before>Hunter
======

* Cross-platform package manager for CMake (based on ExternalProject)
* Supported platforms: Linux, Mac, Windows, iOS

[![Build Status][link_master]][link_hunter]

[link_master]: https://travis-ci.org/ruslo/hunter.png?branch=master
[link_hunter]: https://travis-ci.org/ruslo/hunter

### What is it?

Every hunter release archive is a meta-package with build instructions and URLs of real packages, i.e.:
```
Hunter (0.4.2) = { Boost (1.55.0), GTest (1.7.0), JsonSpirit(0.0.1), OpenSSL(1.0.1h), ... }
```

* Currently used versions can be found in
[cmake/config.cmake](https://github.com/ruslo/hunter/blob/master/cmake/config.cmake) file and are customizable (though there are no guaranties that some combinations are workable)
* Per package versions are available in corresponding `hunter.cmake` file
(e.g. [GTest](https://github.com/ruslo/hunter/blob/master/cmake/projects/GTest/hunter.cmake)).
You can pick one version that already exists
or [add a new one](https://github.com/ruslo/hunter/wiki/Adding-new-package)

### Features

* Automatic dependencies download
 * No more `emerge`, `apt-get`, `brew` etc. Now it's simply `cmake --build`
 * Express install instructions in terms of CMake commands instead of raw README text or other script
* Reusable `ExternalProject_Add` recipies
 * Once written formula can be used by other projects, subprojects etc. without copying of collection of
superbuild files. Just change 2 lines of code: SHA1 and URL of hunter archive
* Customizable builds
 * Does your package manager support 32/64 bit libraries?
 * Debug/Release version of libraries?
 * Can you build your third-party dependencies with
[Clang Memory Sanitizer](http://clang.llvm.org/docs/MemorySanitizer.html)?
 * Can you install your favorite library in static variant instead of dynamic?
 * ...

### First step

* Set `HUNTER_ROOT` environment variable (recommended but not mandatory, see 
[other options](https://github.com/hunter-packages/gate#effects))

* Copy [gate](https://github.com/hunter-packages/gate) module to your project and include it:
```cmake
include("cmake/HunterGate.cmake")<commit_msg>README: all link to DRY principle<commit_after>Hunter
======

* Cross-platform package manager for CMake (based on ExternalProject)
* Supported platforms: Linux, Mac, Windows, iOS

[![Build Status][link_master]][link_hunter]

[link_master]: https://travis-ci.org/ruslo/hunter.png?branch=master
[link_hunter]: https://travis-ci.org/ruslo/hunter

### What is it?

Every hunter release archive is a meta-package with build instructions and URLs of real packages, i.e.:
```
Hunter (0.4.2) = { Boost (1.55.0), GTest (1.7.0), JsonSpirit(0.0.1), OpenSSL(1.0.1h), ... }
```

* Currently used versions can be found in
[cmake/config.cmake](https://github.com/ruslo/hunter/blob/master/cmake/config.cmake) file and are customizable (though there are no guaranties that some combinations are workable)
* Per package versions are available in corresponding `hunter.cmake` file
(e.g. [GTest](https://github.com/ruslo/hunter/blob/master/cmake/projects/GTest/hunter.cmake)).
You can pick one version that already exists
or [add a new one](https://github.com/ruslo/hunter/wiki/Adding-new-package)

### Features

* Automatic dependencies download
 * No more `emerge`, `apt-get`, `brew` etc. Now it's simply `cmake --build`
 * Express install instructions in terms of CMake commands instead of raw README text or other script
* Reusable `ExternalProject_Add` recipies ([DRY principle](http://c2.com/cgi/wiki?DontRepeatYourself))
 * Once written formula can be used by other projects, subprojects etc. without copying of collection of
superbuild files. Just change 2 lines of code: SHA1 and URL of hunter archive
* Customizable builds
 * Does your package manager support 32/64 bit libraries?
 * Debug/Release version of libraries?
 * Can you build your third-party dependencies with
[Clang Memory Sanitizer](http://clang.llvm.org/docs/MemorySanitizer.html)?
 * Can you install your favorite library in static variant instead of dynamic?
 * ...

### First step

* Set `HUNTER_ROOT` environment variable (recommended but not mandatory, see 
[other options](https://github.com/hunter-packages/gate#effects))

* Copy [gate](https://github.com/hunter-packages/gate) module to your project and include it:
```cmake
include("cmake/HunterGate.cmake")
{'fraction_non_alphanumeric': 0.12010084804033921, 'fraction_numerical': 0.01031400412560165, 'mean_word_length': 4.873485868102288, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 14, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1131502', 'n_tokens_mistral': 1352, 'n_tokens_neox': 1305, 'n_words': 442}