Eigen provides native CMake support which allows the library to be easily used in CMake projects.
Eigen exports a CMake target called Eigen3::Eigen which can be imported using the find_package CMake command and used by calling target_link_libraries as in the following example: 
cmake_minimum_required (VERSION 3.0) project (myproject) find_package (Eigen3 3.3 REQUIRED NO_MODULE) add_executable (example example.cpp) target_link_libraries (example Eigen3::Eigen)
The above code snippet must be placed in a file called CMakeLists.txt alongside example.cpp. After running 
$ cmake path-to-example-directory
 CMake will produce project files that generate an executable called example which requires at least version 3.3 of Eigen. Here, path-to-example-directory is the path to the directory that contains both CMakeLists.txt and example.cpp.
Do not forget to set the CMAKE_PREFIX_PATH  variable if Eigen is not installed in a default location or if you want to pick a specific version. For instance: 
$ cmake path-to-example-directory -DCMAKE_PREFIX_PATH=$HOME/mypackages
 An alternative is to set the Eigen3_DIR cmake's variable to the respective path containing the Eigen3*.cmake files. For instance: 
$ cmake path-to-example-directory -DEigen3_DIR=$HOME/mypackages/share/eigen3/cmake/
If the REQUIRED option is omitted when locating Eigen using find_package, one can check whether the package was found as follows: 
find_package (Eigen3 3.3 NO_MODULE) if (TARGET Eigen3::Eigen) # Use the imported target endif (TARGET Eigen3::Eigen)
    © Eigen.
Licensed under the MPL2 License.
    https://eigen.tuxfamily.org/dox/TopicCMakeGuide.html