diff --git a/.markdownlint.json b/.markdownlint.json
new file mode 100644
index 0000000000..b776227bd0
--- /dev/null
+++ b/.markdownlint.json
@@ -0,0 +1,8 @@
+{
+ "default": true,
+ "MD013": false,
+ "MD026": false,
+ "MD024": false,
+ "MD029": {"style": "ordered"},
+ "MD041": false
+}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a930b15cb..2e79b90bd7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,29 +25,13 @@ option(GIL_USE_CONAN "Use Conan to install dependencies" OFF)
option(GIL_USE_CLANG_TIDY "Set CMAKE_CXX_CLANG_TIDY property on targets to enable clang-tidy linting" OFF)
set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ standard version to use (default is 11)")
-#-----------------------------------------------------------------------------
-# Version
-#-----------------------------------------------------------------------------
-file(STRINGS include/boost/gil/version.hpp
- BOOST_GIL_LIB_VERSION
- REGEX "#define BOOST_GIL_LIB_VERSION ")
-
-if(BOOST_GIL_LIB_VERSION)
- string(REGEX REPLACE ".*\"(.*)\".*" "\\1" BOOST_GIL_LIB_VERSION "${BOOST_GIL_LIB_VERSION}")
- string(REPLACE "_" "." BOOST_GIL_LIB_VERSION "${BOOST_GIL_LIB_VERSION}")
-else()
- message(SEND_ERROR "Cannot find version in '${CMAKE_CURRENT_SOURCE_DIR}/include/boost/gil/version.hpp'")
-endif()
-
#-----------------------------------------------------------------------------
# Project
#-----------------------------------------------------------------------------
project(Boost.GIL
LANGUAGES CXX
- VERSION ${BOOST_GIL_LIB_VERSION}
DESCRIPTION "Boost.GIL - Generic Image Library | Requires C++11 since Boost 1.68")
-message(STATUS "Boost.GIL: Version ${PROJECT_VERSION}")
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_BINARY_DIR}/cmake)
#-----------------------------------------------------------------------------
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e030d7bcdd..f4da98c886 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,3 @@
-![logo](https://raw.githubusercontent.com/boostorg/gil/develop/doc/_static/gil.png)
-
# Contributing to Boost.GIL
Boost.GIL is a member of [Boost](https://www.boost.org) libraries.
@@ -9,32 +7,32 @@ please follow the workflow explained in this document.
## Table of Content
-* [Prerequisites](#prerequisites)
-* [Pull Requests](#pull-requests)
-* [Getting started with Git workflow](#getting-started-with-git-workflow)
- * [1. Clone Boost super-project](#1-clone-boost-super-project)
- * [2. Checkout Boost.GIL development branch](#2-checkout-boostgil-development-branch)
- * [3. Fork Boost.GIL repository on GitHub](#3-fork-boostgil-repository-on-github)
- * [4. Submit a pull request](#4-submit-a-pull-request)
- * [5. Update your pull request](#5-update-your-pull-request)
-* [Development](#development)
- * [Install dependencies](#install-dependencies)
- * [Using Boost.Build](#using-boostbuild)
- * [Using CMake](#using-cmake)
- * [Using Faber](#using-faber)
- * [Running clang-tidy](#running-clang-tidy)
-* [Guidelines](#guidelines)
+- [Prerequisites](#prerequisites)
+- [Pull Requests](#pull-requests)
+- [Getting started with Git workflow](#getting-started-with-git-workflow)
+ - [1. Clone Boost super-project](#1-clone-boost-super-project)
+ - [2. Checkout Boost.GIL development branch](#2-checkout-boostgil-development-branch)
+ - [3. Fork Boost.GIL repository on GitHub](#3-fork-boostgil-repository-on-github)
+ - [4. Submit a pull request](#4-submit-a-pull-request)
+ - [5. Update your pull request](#5-update-your-pull-request)
+- [Development](#development)
+ - [Install dependencies](#install-dependencies)
+ - [Using Boost.Build](#using-boostbuild)
+ - [Using CMake](#using-cmake)
+ - [Using Faber](#using-faber)
+ - [Running clang-tidy](#running-clang-tidy)
+- [Guidelines](#guidelines)
## Prerequisites
-* C++11 compiler
-* Build and run-time dependencies for tests and examples:
+- C++11 compiler
+- Build and run-time dependencies for tests and examples:
- Boost.Filesystem
- Boost.Test
- Headers and libraries of libjpeg, libpng, libtiff, libraw for the I/O extension.
-* Experience with `git` command line basics.
-* Familiarity with build toolset and development environment of your choice.
-* Although this document tries to present all commands with necessary options,
+- Experience with `git` command line basics.
+- Familiarity with build toolset and development environment of your choice.
+- Although this document tries to present all commands with necessary options,
it may be a good idea to skim through the
[Boost Getting Started](https://www.boost.org/more/getting_started/index.html)
chapters, especially if you are going to use
@@ -42,48 +40,46 @@ please follow the workflow explained in this document.
## Pull Requests
-* **DO** submit all major changes to code via pull requests (PRs) rather than through
+- **DO** submit all major changes to code via pull requests (PRs) rather than through
a direct commit. PRs will be CI-checked first, then reviewed and potentially merged
by the repo maintainers after a peer review that includes at least one maintainer.
Contributors with commit access may submit trivial patches or changes to the project
infrastructure configuration via direct commits (CAUTION!)
-* **DO NOT** mix independent, unrelated changes in one PR.
+- **DO NOT** mix independent, unrelated changes in one PR.
Separate unrelated fixes into separate PRs, especially if they are in different components
(e.g. core headers versus extensions).
Separate real product/test code changes from larger code formatting/dead code removal changes,
unless the former are extensive enough to justify such refactoring, then also mention it.
-* **DO** start PR subject with "WIP:" tag if you submit it as "work in progress".
+- **DO** start PR subject with "WIP:" tag if you submit it as "work in progress".
A PR should preferably be submitted when it is considered ready for review and subsequent
merging by the contributor. Otherwise, clearly indicate it is not yet ready.
The "WIP:" tag will also help maintainers to label your PR with [status/work-in-progress].
-* **DO** give PRs short-but-descriptive names (e.g. "Add test for algorithm XXX", not "Fix #1234").
-* **DO** [refer] to any relevant issues, and include the [keywords] that automatically
+- **DO** give PRs short-but-descriptive names (e.g. "Add test for algorithm XXX", not "Fix #1234").
+- **DO** [refer] to any relevant issues, and include the [keywords] that automatically
close issues when the PR is merged.
-* **DO** [mention] any users that should know about and/or review the change.
-* **DO** ensure each commit successfully builds. The entire PR must pass all tests in
+- **DO** [mention] any users that should know about and/or review the change.
+- **DO** ensure each commit successfully builds. The entire PR must pass all tests in
the Continuous Integration (CI) system before it'll be merged.
-* **DO** address PR feedback in an additional commit(s) rather than amending the existing
+- **DO** address PR feedback in an additional commit(s) rather than amending the existing
commits, and only rebase/squash them when necessary. This makes it easier for reviewers
to track changes.
-* **DO** assume that the [Squash and Merge] will be used to merge your commit unless you
+- **DO** assume that the [Squash and Merge] will be used to merge your commit unless you
request otherwise in the PR.
-* **DO** NOT fix merge conflicts using a merge commit. Prefer git rebase.
-* **DO** NOT submit changes to the original legacy tests, see
+- **DO** NOT fix merge conflicts using a merge commit. Prefer git rebase.
+- **DO** NOT submit changes to the original legacy tests, see
[test/legacy/README.md](test/legacy/README.md).
### Merging Pull Requests (for maintainers with write access)
-* **DO** use [Squash and Merge] by default for individual contributions unless requested
+- **DO** use [Squash and Merge] by default for individual contributions unless requested
by the PR author. Do so, even if the PR contains only one commit. It creates a simpler
- history than [Create a Merge Commit].
- Reasons that PR authors may request the true merge recording a merge commit
- may include (but are not limited to):
-
- * The change is easier to understand as a series of focused commits.
- Each commit in the series must be buildable so as not to break git bisect.
- * Contributor is using an e-mail address other than the primary GitHub address
- and wants that preserved in the history.
- Contributor must be willing to squash the commits manually before acceptance.
+ history than [Create a Merge Commit]. Reasons that PR authors may request the true
+ merge recording a merge commit may include (but are not limited to):
+ - The change is easier to understand as a series of focused commits.
+ Each commit in the series must be buildable so as not to break git bisect.
+ - Contributor is using an e-mail address other than the primary GitHub address
+ and wants that preserved in the history.
+ Contributor must be willing to squash the commits manually before acceptance.
## Getting started with Git workflow
@@ -317,8 +313,8 @@ By default, Boost.GIL uses Boost.Build to build all the executables.
We also provide configuration for two alternative build systems:
-* [CMake](https://cmake.org)
-* [Faber](http://stefan.seefeld.name/faber/)
+- [CMake](https://cmake.org)
+- [Faber](http://stefan.seefeld.name/faber/)
**NOTE:** The CMake and Faber are optional and the corresponding build
configurations for Boost.GIL do not offer equivalents for all Boost.Build features. Most important difference to recognise is that Boost.Build will
@@ -396,15 +392,18 @@ The provided CMake configuration allows a couple of ways to develop Boost.GIL:
3. Using [cloned Boost super-project](#cloned-boost-super-project), inside modular
`libs/gil`. This mode requires prior deployment of `boost` virtual directory
with headers and stage build of required libraries, for example:
- ```shell
- ./b2 -j8 headers
- ./b2 -j8 variant=debug --with-test --with-filesystem stage
- ./b2 -j8 variant=release --with-test --with-filesystem stage
- ```
- or, depending on specific requirements, more complete build:
- ```shell
- ./b2 -j8 variant=debug,release address-model=32,64 --layout=versioned --with-test --with-filesystem stage
- ```
+
+ ```shell
+ ./b2 -j8 headers
+ ./b2 -j8 variant=debug --with-test --with-filesystem stage
+ ./b2 -j8 variant=release --with-test --with-filesystem stage
+ ```
+
+ or, depending on specific requirements, more complete build:
+
+ ```shell
+ ./b2 -j8 variant=debug,release address-model=32,64 --layout=versioned --with-test --with-filesystem stage
+ ```
Using the installed Boost enables a lightweight mode for the library development,
inside a stand-alone clone Boost.GIL repository and without any need to clone the
@@ -417,21 +416,21 @@ and search for `option`.
Here is an example of such lightweight workflow in Linux environment (Debian-based):
-* Install required Boost libraries
+- Install required Boost libraries
```shell
sudo apt-get update
sudo apt-get install libboost-dev libboost-test-dev libboost-filesystem-dev
```
-* Clone Boost.GIL repository
+- Clone Boost.GIL repository
```shell
git clone https://github.com/boostorg/gil.git
cd gil
```
-* Configure build with CMake
+- Configure build with CMake
```shell
mkdir _build
@@ -440,44 +439,42 @@ Here is an example of such lightweight workflow in Linux environment (Debian-bas
```
**TIP:** By default, tests and [examples](example/README.md) are compiled using
- the minimum required C++11.
- Specify `-DCMAKE_CXX_STANDARD=14|17|20` to use newer version.
- For more CMake options available for GIL, check `option`-s defined
- in the top-level `CMakeLists.txt`.
-
- **TIP:** If CMake is failing to find Boost libraries, especially built with
- `--layout=versioned`, you can try a few hacks:
-
- - `-DBoost_ARCHITECTURE=-x64` to help CMake find Boost 1.66 and above
+ the minimum required C++11.
+ Specify `-DCMAKE_CXX_STANDARD=14|17|20` to use newer version.
+ For more CMake options available for GIL, check `option`-s defined
+ in the top-level `CMakeLists.txt`.
+
+ **TIP:** If CMake is failing to find Boost libraries, especially built
+ with `--layout=versioned`, you can try a few hacks:
+ - option `-DBoost_ARCHITECTURE=-x64` to help CMake find Boost 1.66 and above
add an architecture tag to the library file names in versioned build
The option added in CMake 3.13.0.
-
- - `-DBoost_COMPILER=-gcc5` or `-DBoost_COMPILER=-vc141` to help CMake earlier
+ - option `-DBoost_COMPILER=-gcc5` or `-DBoost_COMPILER=-vc141` to help CMake earlier
than 3.13 match your compiler with toolset used in the Boost library file names
(i.e. `libboost_unit_test_framework-gcc5-mt-x64-1_69` and not `-gcc55-`).
Fixed in CMake 3.13.0.
+ - if CMake is still failing to find Boost, you may try `-DBoost_DEBUG=ON` to
+ get detailed diagnostics output from `FindBoost.cmake` module.
- - if CMake is still failing to find Boost, you may try `-DBoost_DEBUG=ON` to
- get detailed diagnostics output from `FindBoost.cmake` module.
-
-* List available CMake targets
+- List available CMake targets
```shell
cmake --build . --target help
```
-* Build selected target with CMake
+- Build selected target with CMake
```shell
cmake --build . --target gil_test_pixel
```
-* List available CTest targets
+- List available CTest targets
```shell
ctest --show-only | grep Test
```
-* Run selected test with CTest
+
+- Run selected test with CTest
```shell
ctest -R gil.tests.core.pixel
@@ -570,29 +567,30 @@ Major refactoring overhaul is ongoing.*
Maintain structure your source code files according to the following guidelines:
-* Name files in meaningful way.
-* Put copyright and license information in every file
-* If your changes [meet a certain threshold of originality](https://www.boost.org/users/license.html),
+- Name files in meaningful way.
+- Put copyright and license information in every file
+- If your changes [meet a certain threshold of originality](https://www.boost.org/users/license.html),
add yourself to the copyright notice. Do not put any additional authorship or
file comments (eg. no `\file` for Doxygen), revision information, etc.
-* In header, put `#include` guard based on header path and file name
+- In header, put `#include` guard based on header path and file name
+
```cpp
#ifndef BOOST_GIL____HPP
#define BOOST_GIL____HPP
...
#endif
```
-* Make sure each [header is self-contained](https://github.com/boostorg/gil/wiki/Include-Directives-Order), i.e. that they include all headers they need.
-* All public headers should be placed in `boost/gil/` or `boost/gil//`.
-* All non-public headers should be placed `boost/gil/detail` or `boost/gil//detail`.
-* All public definitions should reside in scope of `namespace boost { namespace gil {...}}`.
-* All non-public definitions should reside in scope of `namespace boost { namespace gil { namespace detail {...}}}`.
-* Write your code to fit within **100** columns of text.
-* Use [EditorConfig](https://editorconfig.org) for your editor and enable [.editorconfig](https://github.com/boostorg/gil/blob/develop/.editorconfig) to:
- * Indent with **4 spaces** and no tabs.
- * Trim any trailing whitespaces.
-* Do not increases the indentation level within namespace.
+- Make sure each [header is self-contained](https://github.com/boostorg/gil/wiki/Include-Directives-Order), i.e. that they include all headers they need.
+- All public headers should be placed in `boost/gil/` or `boost/gil//`.
+- All non-public headers should be placed `boost/gil/detail` or `boost/gil//detail`.
+- All public definitions should reside in scope of `namespace boost { namespace gil {...}}`.
+- All non-public definitions should reside in scope of `namespace boost { namespace gil { namespace detail {...}}}`.
+- Write your code to fit within **100** columns of text.
+- Use [EditorConfig](https://editorconfig.org) for your editor and enable [.editorconfig](https://github.com/boostorg/gil/blob/develop/.editorconfig) to:
+ - Indent with **4 spaces** and no tabs.
+ - Trim any trailing whitespaces.
+- Do not increases the indentation level within namespace.
[status/work-in-progress]: https://github.com/boostorg/gil/labels/status%2Fwork-in-progress
[refer]: https://help.github.com/articles/autolinked-references-and-urls/
diff --git a/README.md b/README.md
index 6fbc8ed381..b47e6f5c5d 100644
--- a/README.md
+++ b/README.md
@@ -47,8 +47,9 @@ variety of images with performance similar to hand-writing for a specific image
## Documentation
-- Latest release: https://boost.org/libs/gil
-- Development: http://boostorg.github.io/gil/
+- [Latest release](https://boost.org/libs/gil)
+- [Branch master](http://boostorg.github.io/gil/) (latest release with minor changes)
+- [Branch develop](http://boostorg.github.io/gil/develop/)
See [CONTRIBUTING.md](CONTRIBUTING.md) for instructions about how to build and
run tests, examples.
@@ -74,10 +75,10 @@ Optionally, in order to build and run tests and examples:
The official repository contains the following branches:
-* [**master**](https://github.com/boostorg/gil/tree/master) This
+- [**master**](https://github.com/boostorg/gil/tree/master) This
holds the most recent snapshot with code that is known to be stable.
-* [**develop**](https://github.com/boostorg/gil/tree/develop) This
+- [**develop**](https://github.com/boostorg/gil/tree/develop) This
holds the most recent snapshot. It may contain unstable code.
## Community
@@ -87,8 +88,8 @@ There is number of communication channels to ask questions and discuss Boost.GIL
- Mailing list [boost-gil](https://lists.boost.org/mailman/listinfo.cgi/boost-gil) ([archive](https://lists.boost.org/boost-gil/)) as well as official Boost lists, [boost-users](https://lists.boost.org/mailman/listinfo.cgi/boost-users) and
[boost](https://lists.boost.org/mailman/listinfo.cgi/boost).
- Gitter chat room [boostorg//gil](https://gitter.im/boostorg/gil).
-- [cpplang.slack.com](https://cpplang.slack.com) chat rooms [#boost-user](https://cpplang.slack.com/messages/CEWTCFDN0/) and [#boost](https://cpplang.slack.com/messages/C27KZLB0X/).
-- IRC channel [#boost](irc://chat.freenode.net/#osgeo-geos) on FreeNode.
+- [cpplang.slack.com](https://cpplang.slack.com) chat rooms [\#boost-user](https://cpplang.slack.com/messages/CEWTCFDN0/) and [\#boost](https://cpplang.slack.com/messages/C27KZLB0X/).
+- IRC channel [\#boost](irc://chat.freenode.net/#boost) on FreeNode.
- You can also ask questions via GitHub issue.
## Contributing (We Need Your Help!)
@@ -106,7 +107,7 @@ with solving reported issues, especially those labelled with:
- [status/need-help](https://github.com/boostorg/gil/labels/status%2Fneed-help)
- [status/need-feedback](https://github.com/boostorg/gil/labels/status%2Fneed-feedback)
-- [need-minimal-example ](https://github.com/boostorg/gil/labels/status%2Fneed-minimal-example)
+- [need-minimal-example](https://github.com/boostorg/gil/labels/status%2Fneed-minimal-example)
Any feedback from users and developers, even simple questions about how things work
or why they were done a certain way, carries value and can be used to improve the library.
diff --git a/RELEASES.md b/RELEASES.md
new file mode 100644
index 0000000000..c65172ac5e
--- /dev/null
+++ b/RELEASES.md
@@ -0,0 +1,66 @@
+# Release Notes
+
+All notable changes to [Boost.GIL](https://github.com/boostorg/gil/) project will be documented in this file.
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
+
+## [Unreleased]
+
+## [1.72.0] - 2019-12-11
+
+### Added
+- GSoC 2019: Lanczos resampling for image down scaling ([PR #309](https://github.com/boostorg/gil/pull/309)).
+- GSoC 2019: Methods for binary thresholding, inverted binary thresholding and truncation thresholding ([PR #313](https://github.com/boostorg/gil/pull/313)).
+- GSoC 2019: Otsu thresholding method ([PR #314](https://github.com/boostorg/gil/pull/314)).
+- GSoC 2019: Adaptive thresholding using mean or gaussian-weighted sum of the neighbourhood area ([PR #315](https://github.com/boostorg/gil/pull/315)).
+- GSoC 2019: Harris response calculation (corner detector without non-maximum filtering) ([PR #350](https://github.com/boostorg/gil/pull/350)).
+- GSoC 2019: Hessian corner detector ([PR #364](https://github.com/boostorg/gil/pull/364)).
+- GSoC 2019: Types for defining 2D kernel, `kernel_2d` and `kernel_2d_fixed`, in Numeric extension ([PR #361](https://github.com/boostorg/gil/pull/361)).
+- GSoC 2019: Implementation of 2D convolution as new function `convolve_2d` ([PR #367](https://github.com/boostorg/gil/pull/367)).
+- GSoC 2019: Box filtering using the average filter ([PR #383](https://github.com/boostorg/gil/pull/383)).
+- GSoC 2019: Blur function based on normalized mean filter ([PR #383](https://github.com/boostorg/gil/pull/383)).
+- GSoC 2019: Sobel and Scharr operators ([PR #392](https://github.com/boostorg/gil/pull/392)).
+- GSoC 2019: Median filter to remove noise from image ([PR #393](https://github.com/boostorg/gil/pull/393)).
+- Continued adding new test cases and significantly improved overall test coverage.
+- Documented purpose of `cached_location_t` ([PR #287](https://github.com/boostorg/gil/pull/287)).
+- Function `convolve_1d` in Numeric extension for convenient use of `convolve_rows` and `convolve_cols` ([PR #347](https://github.com/boostorg/gil/pull/347) and [PR #367](https://github.com/boostorg/gil/pull/367)).
+- Function `extend_boundary` in Numeric extension to perform image boundary extension ([PR #386](https://github.com/boostorg/gil/pull/386)).
+- Project release notes maintained in Markdown file `RELEASES.md` ([PR #404](https://github.com/boostorg/gil/pull/404)).
+
+### Changed
+- Move all tests, core features and extensions, inside `test/` directory ([PR #302](https://github.com/boostorg/gil/pull/302)).
+
+### Removed
+- Replace Boost.MPL with Boost.MP11 ([PR #274](https://github.com/boostorg/gil/pull/274)).
+- Removed use of Boost.TypeTraits ([PR #274](https://github.com/boostorg/gil/pull/274)).
+- Dropped support for GCC <= 4.8 ([PR #296](https://github.com/boostorg/gil/pull/296)).
+- Remove `include/boost/gil/version.hpp` file as unused ([PR #403](https://github.com/boostorg/gil/pull/403)).
+
+### Fixed
+- Undetermined value of default-initialized channel and pixel objects ([PR #273](https://github.com/boostorg/gil/pull/273)).
+- Undefined behaviour due to `std::is_trivially_default_constructible` specializations ([PR #284](https://github.com/boostorg/gil/pull/284)).
+- Crash when reading PNG files with an invalid header ([PR #385](https://github.com/boostorg/gil/pull/385)).
+- Applied the [Rule of Three](https://en.wikipedia.org/wiki/Rule_of_three_(C%2B%2B_programming)) for numerous types.
+- Removed uses of deprecated implicit definition of defaulted copy assignment operator or copy constructor.
+
+## [1.68.0] - 2018-08-09
+
+### Added
+- The library now requires a C++11-compliant compiler.
+- Added Toolbox extension following the [review and acceptance into Boost](https://lists.boost.org/boost-announce/2011/01/0281.php).
+
+### Changed
+- The I/O extensions have been entirely rewritten as I/O v2, [reviewed and accepted into Boost](https://lists.boost.org/boost-announce/2011/01/0281.php).
+- Documentation has been reformatted and updated.
+
+### Removed
+- The existing I/O v1 extension has been replaced with I/O v2.
+
+## [1.53.0] - 2013-02-04
+
+### Fixed
+- Fixed self-assignment warnings (Trac [#4919](https://svn.boost.org/trac10/ticket/4919)).
+
+## [1.35.0] - 2008-03-29
+
+### Added
+- First release of Generic Image Library developed by Lubomir Bourdev and Hailin Jin following the [review and acceptance into Boost](https://lists.boost.org/Archives/boost/2006/11/112896.php).
diff --git a/doc/README.md b/doc/README.md
index d45155ec01..48ac0b32a1 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -4,30 +4,31 @@ A simple guide about writing and building documentation for Boost.GIL.
## Prerequisites
-- Python 3.6+
-- [Install Sphinx](#install-sphinx) 1.7.9+
+- Python 3
+- [Install Sphinx](#install-sphinx) (see `requirements.txt`)
- Install [Doxygen](http://www.doxygen.org)
+
## Installation
Create Python virtual environment:
```console
-$ cd boost/libs/gil
$ python3 -m venv .venv
-$ source ./.venv/bin/activate
+$ source ~/.venv/bin/activate
```
Install Sphinx and Sphinx extensions:
```console
-(.venv)$ pip install -r doc/requirements.txt
+(.venv)$ cd boost-root
+(.venv)$ pip install -r libs/gil/doc/requirements.txt
```
## Build
```console
$ echo "using doxygen ;" > ~/user-config.jam
-$ cd boost/libs/gil/doc
-$ b2
+$ cd boost-root
+$ b2 libs/gil/doc
```
diff --git a/example/README.md b/example/README.md
index fe14988bb1..f6e62db6d4 100644
--- a/example/README.md
+++ b/example/README.md
@@ -3,7 +3,7 @@
This directory contains
- examples of C++ programs using GIL
-- configuration files for CMake integrarions in popular IDEs
+- configuration files for CMake integrations in popular IDEs
We provide Boost.Build (`Jamfile`) and CMake (`CMakeLists.txt`)
configurations to build the examples.
diff --git a/include/boost/gil.hpp b/include/boost/gil.hpp
index 8c338b0a7e..5fc7d15819 100644
--- a/include/boost/gil.hpp
+++ b/include/boost/gil.hpp
@@ -42,7 +42,6 @@
#include
#include
#include
-#include
#include
#include
#include
diff --git a/include/boost/gil/version.hpp b/include/boost/gil/version.hpp
deleted file mode 100644
index 5fd5a51577..0000000000
--- a/include/boost/gil/version.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-// Copyright (c) 2018 Christian Henning (chhenning at gmail dot com)
-//
-// Distributed under the Boost Software License, Version 1.0
-// See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt
-//
-#ifndef BOOST_GIL_VERSION_HPP
-#define BOOST_GIL_VERSION_HPP
-
-/// @def BOOST_GIL_API_VERSION
-/// Identifies the API version of gil.
-/// This is a simple integer that is incremented by one every
-/// time a set of code changes is merged to the develop branch.
-#define BOOST_GIL_VERSION 22
-
-// BOOST_GIL_LIB_VERSION must be defined to be the same as BOOST_GIL_VERSION
-// but as a *string* in the form "x_y[_z]" where x is the major version
-// number, y is the minor version number, and z is the patch level if not 0.
-#define BOOST_GIL_LIB_VERSION "2_2"
-
-#endif
diff --git a/meta/libraries.json b/meta/libraries.json
index 0b03877bab..b8ca8b6357 100644
--- a/meta/libraries.json
+++ b/meta/libraries.json
@@ -6,7 +6,7 @@
"Hailin Jin",
"Christian Henning"
],
- "description": "Generic Image Library",
+ "description": "(C++11) Generic Image Library",
"category": [
"Algorithms",
"Containers",