cmake_minimum_required(VERSION 3.21) project(EigenExample LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Eigen: use an installed version if available, otherwise download it find_package(Eigen3 5.0.1 QUIET) if(NOT TARGET Eigen3::Eigen) include(FetchContent) FetchContent_Declare( eigen3 URL https://gitlab.com/libeigen/eigen/-/archive/5.0.1/eigen-5.0.1.tar.gz ) set(BUILD_TESTING OFF CACHE BOOL "Disable Eigen tests" FORCE) set(EIGEN_BUILD_DOC OFF CACHE BOOL "Disable Eigen docs" FORCE) set(EIGEN_BUILD_TESTING OFF CACHE BOOL "Disable Eigen tests" FORCE) FetchContent_MakeAvailable(eigen3) if(NOT TARGET Eigen3::Eigen) add_library(Eigen3::Eigen ALIAS eigen) endif() endif() add_executable(kinetic_energy kinetic_energy.cpp) target_link_libraries(kinetic_energy PRIVATE Eigen3::Eigen) add_executable(wave wave.cpp) target_link_libraries(wave PRIVATE Eigen3::Eigen)