diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0b426cafd98157ae213df2206280eca91729dd8a
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,37 @@
+cmake_minimum_required(VERSION 3.15)
+project(EvalHyd LANGUAGES CXX VERSION 0.0.1 DESCRIPTION "Utility to evaluate streamflow predictions")
+
+# define evalhyd library
+add_library(
+        evalhyd
+        src/determinist/evald.cpp
+        src/probabilist/evalp.cpp
+        src/probabilist/evaluator_brier.cpp
+        src/probabilist/evaluator_elements.cpp
+        src/probabilist/evaluator_quantiles.cpp
+)
+
+add_library(EvalHyd::evalhyd ALIAS evalhyd)
+
+target_include_directories(
+        evalhyd
+        PUBLIC
+                $<INSTALL_INTERFACE:include>
+                $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+        PRIVATE
+                ${CMAKE_CURRENT_SOURCE_DIR}/src
+)
+
+find_package(xtensor REQUIRED)
+
+target_link_libraries(
+        evalhyd
+        PUBLIC
+                xtensor
+)
+
+target_compile_features(
+        evalhyd
+        PUBLIC
+                cxx_std_14
+)