1namespace Eigen { 2 3/** 4 5\page TopicCMakeGuide Using %Eigen in CMake Projects 6 7%Eigen provides native CMake support which allows the library to be easily 8used in CMake projects. 9 10\note %CMake 3.0 (or later) is required to enable this functionality. 11 12%Eigen exports a CMake target called `Eigen3::Eigen` which can be imported 13using the `find_package` CMake command and used by calling 14`target_link_libraries` as in the following example: 15\code{.cmake} 16cmake_minimum_required (VERSION 3.0) 17project (myproject) 18 19find_package (Eigen3 3.3 REQUIRED NO_MODULE) 20 21add_executable (example example.cpp) 22target_link_libraries (example Eigen3::Eigen) 23\endcode 24 25The above code snippet must be placed in a file called `CMakeLists.txt` alongside 26`example.cpp`. After running 27\code{.sh} 28$ cmake path-to-example-directory 29\endcode 30CMake will produce project files that generate an executable called `example` 31which requires at least version 3.3 of %Eigen. Here, `path-to-example-directory` 32is the path to the directory that contains both `CMakeLists.txt` and 33`example.cpp`. 34 35If you have multiple installed version of %Eigen, you can pick your favorite one by setting the \c Eigen3_DIR cmake's variable to the respective path containing the \c Eigen3*.cmake files. For instance: 36\code 37cmake path-to-example-directory -DEigen3_DIR=$HOME/mypackages/share/eigen3/cmake/ 38\endcode 39 40If the `REQUIRED` option is omitted when locating %Eigen using 41`find_package`, one can check whether the package was found as follows: 42\code{.cmake} 43find_package (Eigen3 3.3 NO_MODULE) 44 45if (TARGET Eigen3::Eigen) 46 # Use the imported target 47endif (TARGET Eigen3::Eigen) 48\endcode 49 50*/ 51 52} 53