|
|
namespace Eigen { |
|
|
|
|
|
/** |
|
|
|
|
|
\page TopicCMakeGuide Using %Eigen in CMake Projects |
|
|
|
|
|
%Eigen provides native CMake support which allows the library to be easily |
|
|
used in CMake projects. |
|
|
|
|
|
\note %CMake 3.0 (or later) is required to enable this functionality. |
|
|
|
|
|
%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: |
|
|
\code{.cmake} |
|
|
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) |
|
|
\endcode |
|
|
|
|
|
The above code snippet must be placed in a file called `CMakeLists.txt` alongside |
|
|
`example.cpp`. After running |
|
|
\code{.sh} |
|
|
$ cmake path-to-example-directory |
|
|
\endcode |
|
|
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`. |
|
|
|
|
|
If 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: |
|
|
\code |
|
|
cmake path-to-example-directory -DEigen3_DIR=$HOME/mypackages/share/eigen3/cmake/ |
|
|
\endcode |
|
|
|
|
|
If the `REQUIRED` option is omitted when locating %Eigen using |
|
|
`find_package`, one can check whether the package was found as follows: |
|
|
\code{.cmake} |
|
|
find_package (Eigen3 3.3 NO_MODULE) |
|
|
|
|
|
if (TARGET Eigen3::Eigen) |
|
|
|
|
|
endif (TARGET Eigen3::Eigen) |
|
|
\endcode |
|
|
|
|
|
*/ |
|
|
|
|
|
} |
|
|
|