diff --git a/CMakeLists.txt b/CMakeLists.txt
index b261b603d2361ae69c70600ff7f53812af022c11..049111a0050fff22a616b9a0abcc172e95a02797 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -76,4 +76,47 @@ endif()
 # installation
 # ------------------------------------------------------------------------------
 
-# TODO
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)
+
+# install library file (.a/.so)
+install(
+        TARGETS evalhyd
+        EXPORT evalhyd-targets
+)
+
+# install headers
+install(
+        DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/evalhyd"
+        DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
+        FILES_MATCHING PATTERN "*.hpp"
+)
+
+# generate target file
+export(
+        EXPORT evalhyd-targets
+        FILE "${CMAKE_CURRENT_BINARY_DIR}/EvalHydTargets.cmake"
+)
+
+# install target file
+install(
+        EXPORT evalhyd-targets
+        FILE "EvalHydTargets.cmake"
+        NAMESPACE EvalHyd::
+        DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/EvalHyd
+)
+
+# generate config file
+configure_package_config_file(
+        EvalHydConfig.cmake.in
+        "${CMAKE_CURRENT_BINARY_DIR}/EvalHydConfig.cmake"
+        INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/EvalHyd
+)
+
+# install files
+install(
+        FILES
+            "${CMAKE_CURRENT_BINARY_DIR}/EvalHydConfig.cmake"
+        DESTINATION
+            "${CMAKE_INSTALL_LIBDIR}/cmake/EvalHyd"
+)
diff --git a/EvalHydConfig.cmake.in b/EvalHydConfig.cmake.in
new file mode 100644
index 0000000000000000000000000000000000000000..ab97daed8af49db28f7fc159b741f6c3d641781f
--- /dev/null
+++ b/EvalHydConfig.cmake.in
@@ -0,0 +1,10 @@
+@PACKAGE_INIT@
+
+include(CMakeFindDependencyMacro)
+
+# find public dependencies
+find_dependency(xtensor @xtensor_VERSION@)
+
+if(NOT TARGET EvalHyd::evalhyd)
+    include("${CMAKE_CURRENT_LIST_DIR}/EvalHydTargets.cmake")
+endif()
diff --git a/README.md b/README.md
index ec9c8ea2c94b0d1cdb819bbd0ce3c5a87c087cba..6108d5ec014cf07c14be3751894cbfa446f6be09 100644
--- a/README.md
+++ b/README.md
@@ -20,3 +20,9 @@ Run tests with:
 ```shell
 ./build/tests/evalhyd_tests  
 ```
+
+## How to install
+
+```shell
+cmake --install build/ --prefix <path>
+```