diff --git a/cmake/configs/default.cmake b/cmake/configs/default.cmake index 1dfa7f76f9..aacffd2e82 100644 --- a/cmake/configs/default.cmake +++ b/cmake/configs/default.cmake @@ -77,6 +77,7 @@ hunter_default_version(HastyNoise VERSION 0.8.3) hunter_default_version(ICU VERSION 63.1-p5) hunter_default_version(IF97 VERSION 2.1.2) hunter_default_version(Igloo VERSION 1.1.1-hunter) +hunter_default_version(Immer VERSION 0.6.2-cf44615) hunter_default_version(Jpeg VERSION 9c-p0) hunter_default_version(JsonSpirit VERSION 0.0.4-hunter) hunter_default_version(LAPACK VERSION 3.7.1) diff --git a/cmake/projects/Immer/hunter.cmake b/cmake/projects/Immer/hunter.cmake new file mode 100644 index 0000000000..d61235d0f9 --- /dev/null +++ b/cmake/projects/Immer/hunter.cmake @@ -0,0 +1,24 @@ +# !!! DO NOT PLACE HEADER GUARDS HERE !!! + +include(hunter_add_version) +include(hunter_cacheable) +include(hunter_download) +include(hunter_pick_scheme) + +hunter_add_version( + PACKAGE_NAME + Immer + VERSION + 0.6.2-cf44615 + URL + "https://github.com/arximboldi/immer/archive/cf446157834335887c2f89418e5dad3d00abfb85.zip" + SHA1 + ec88a3d4757c931697f0f9e2aac70e1b50961cf0 +) + +hunter_pick_scheme(DEFAULT url_sha1_cmake) +hunter_cacheable(Immer) +hunter_download( + PACKAGE_NAME Immer + PACKAGE_INTERNAL_DEPS_ID "1" +) diff --git a/docs/packages/pkg/Immer.rst b/docs/packages/pkg/Immer.rst new file mode 100644 index 0000000000..75909eb1c0 --- /dev/null +++ b/docs/packages/pkg/Immer.rst @@ -0,0 +1,20 @@ +.. spelling:: + + Immer + +.. index:: + single: unsorted ; Immer + +.. _pkg.Immer: + +Immer +===== + +- `Official `__ +- `Example `__ +- Added by `Joerg-Christian Boehme `__ (`pr-104 `__) + +.. literalinclude:: /../examples/Immer/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/examples/Immer/CMakeLists.txt b/examples/Immer/CMakeLists.txt new file mode 100644 index 0000000000..bc042a011b --- /dev/null +++ b/examples/Immer/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2018, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.2) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(immer) + +# DOCUMENTATION_START { +hunter_add_package(Immer) +find_package(Immer CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC immer) +# DOCUMENTATION_END } diff --git a/examples/Immer/boo.cpp b/examples/Immer/boo.cpp new file mode 100644 index 0000000000..66e6bb2803 --- /dev/null +++ b/examples/Immer/boo.cpp @@ -0,0 +1,14 @@ +#include +#include +#include + +int main() +{ + auto v1 = immer::box{"hello"}; + auto v2 = v1.update([&] (auto l) { + return l + ", world!"; + }); + + assert((v1 == immer::box{"hello"})); + assert((v2 == immer::box{"hello, world!"})); +}