Add simple input signal processor

Add a simple input signal manager. When the manager is invoked with
input source signal change, it recomputes the expected output and
notifies all output signal listeners.

Change-Id: Iac130441fc814d8d71b2ac3026e9735b0db4badb
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6ee9d23..74f2ca2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,6 +21,7 @@
 find_package(Doxygen)
 option(WITH_DOCS "Create and install internal documentation (needs Doxygen)" ${DOXYGEN_FOUND})
 
+find_package(Boost REQUIRED)
 find_package(spdlog REQUIRED)
 
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/)
@@ -32,6 +33,14 @@
     )
 target_link_libraries(velia-utils PUBLIC spdlog::spdlog)
 
+add_library(velia-state-manager STATIC
+    src/inputs/AbstractInput.cpp
+    src/manager/AbstractManager.cpp
+    src/manager/StateManager.cpp
+    src/State.cpp
+    )
+target_link_libraries(velia-state-manager PUBLIC velia-utils Boost::boost)
+
 add_executable(veliad
     src/main.cpp
     )
@@ -63,6 +72,7 @@
         endif()
 
     endfunction()
+    velia_test(state-manager velia-state-manager)
 endif()
 
 if(WITH_DOCS)