Files
mp-units/doc/INSTALL.md
T

83 lines
2.0 KiB
Markdown
Raw Normal View History

2019-10-04 08:29:24 +02:00
# Installation Guide
## Installation and Reuse
2019-04-10 17:20:32 +01:00
There are a few different ways of installing/reusing `units` in your project.
2019-10-04 08:29:24 +02:00
### Copy
As `units` is a header-only library you can simply copy `src/include` directory to
your source tree and use it as regular header files.
NOTE: Until C++20 arrives the library has some 3rd party dependencies that provide
2019-10-04 08:29:24 +02:00
experimental C++20 features. The list of dependncies include:
- `range-v3@ericniebler`
2019-10-04 08:29:24 +02:00
All of them are easily obtained with `conan`.
2019-10-04 08:29:24 +02:00
### cmake + conan
To use `units` as a `cmake` imported library via `cmake` configuration files the following
2019-04-10 17:20:32 +01:00
steps may be done:
- add the following remotes to your local `conan` instance
2019-10-04 08:29:24 +02:00
```shell
conan remote add conan-mpusz https://api.bintray.com/conan/mpusz/conan-mpusz
2019-04-10 17:20:32 +01:00
```
2019-10-04 08:29:24 +02:00
- add `units` as a dependency to your `conan` file. For example to use testing version of
`0.4.0` of `mp-units` add:
2019-04-10 17:20:32 +01:00
- `conanfile.txt`
```text
[requires]
2019-10-04 08:29:24 +02:00
mp-units/0.4.0@mpusz/testing
2019-04-10 17:20:32 +01:00
```
2019-10-04 08:29:24 +02:00
2019-04-10 17:20:32 +01:00
- `conanfile.py`
2019-04-10 17:20:32 +01:00
```python
2019-10-04 08:29:24 +02:00
requires = "mp-units/0.4.0@mpusz/testing"
2019-04-10 17:20:32 +01:00
```
- link your `cmake` target with units
```text
target_link_libraries(<your_target> PUBLIC|PRIVATE|INTERFACE CONAN_PKG::mp-units)
```
2019-10-04 08:29:24 +02:00
- install `conan` dependencies before configuring cmake
2019-10-04 08:29:24 +02:00
```shell
cd build
conan install .. -pr <your_conan_profile> -s cppstd=20 -b=outdated -u
2019-04-10 17:20:32 +01:00
```
2019-10-04 08:29:24 +02:00
## Full build and unit testing
In case you would like to build all the code in that repository (with unit tests and examples)
2019-10-04 08:29:24 +02:00
you should use the `CMakeLists.txt` from the parent directory.
2019-10-04 08:29:24 +02:00
```shell
mkdir build && cd build
2019-04-10 17:20:32 +01:00
conan install .. <your_profile_and_settings> -s cppstd=20
cmake .. <your_cmake_configuration>
cmake --build .
```
2019-10-04 08:29:24 +02:00
## Packaging
To create a `conan` package and test `cmake` installation and `conan` packaging run:
2019-10-04 08:29:24 +02:00
```shell
conan create . <username>/<channel> -s cppstd=20 -b=outdated <your_profile_and_settings>
```
2019-10-04 08:29:24 +02:00
## Upload package to conan server
2019-10-04 08:29:24 +02:00
```shell
conan upload -r <remote-name> --all mp-units/0.4.0@<user>/<channel>
```