Использование Eigen в проектах CMake
Eigen предоставляет поддержку CMake, которая позволяет легко использовать библиотеку в проектах CMake.
- Примечание
- Для включения этой функциональности требуется CMake 3.0 (или более поздняя версия).
Eigen экспортирует целевой элемент CMake, называемый Eigen3::Eigen, который можно импортировать с помощью команды CMake find_package и использовать, вызывая target_link_libraries, как показано в следующем примере:
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)
Приведённый фрагмент кода должен быть размещён в файле с именем CMakeLists.txt наряду с example.cpp. После выполнения
$ cmake path-to-example-directory
CMake сгенерирует файлы проекта, которые создадут исполняемый файл с именем example, который требует как минимум версии 3.3 Eigen. Здесь path-to-example-directory — путь к каталогу, содержащему как CMakeLists.txt, так и example.cpp.
Не забудьте установить переменную CMAKE_PREFIX_PATH , если Eigen не установлен в стандартном месте или если вы хотите выбрать определённую версию. Например:
$ cmake path-to-example-directory -DCMAKE_PREFIX_PATH=$HOME/mypackages
Альтернативой является установка переменной Eigen3_DIR CMake до соответствующего пути, содержащего файлы Eigen3*.cmake. Например:
$ cmake path-to-example-directory -DEigen3_DIR=$HOME/mypackages/share/eigen3/cmake/
Если опция REQUIRED опущена при поиске Eigen с помощью find_package, можно проверить, был ли пакет найден следующим образом:
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