diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3c8e697882ec0cb7e2cd047e2141c4c7bcf77003..10a5b80effc7a0fcffc11f7a39066654febad5d2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -87,6 +87,10 @@ find_package(LAPACK)
 set(BLAS_LIB   "${BLAS_LIBRARIES}"   CACHE FILEPATH "BLAS library")
 set(LAPACK_LIB "${LAPACK_LIBRARIES}" CACHE FILEPATH "LAPACK library")
 
+## Eigen ##
+###########
+find_package(Eigen3 NO_MODULE)
+
 ## OpenMP ##
 ############
 if(OPENMP)
@@ -190,7 +194,8 @@ set_target_properties(sf PROPERTIES LINKER_LANGUAGE CXX)
 target_link_libraries(sf
   ${SLEPC_LIB} ${PETSC_LIB} ${MUMPS_LIB} ${PASTIX_LIB} ${GMSH_LIB}
   ${BLAS_LIB} ${LAPACK_LIB} ${MPI_LIB} ${MUMPS_SEQ} ${GSL_LIB}
-  ${CMAKE_DL_LIBS} ${RT_LIB} gfortran)  # Order matters for static links
+  ${CMAKE_DL_LIBS} ${RT_LIB}
+  Eigen3::Eigen gfortran)  # Order matters for static links
 
 ## Build Simulations ##
 #######################