cmake_minimum_required(VERSION 3.16) project(ViewDesignEngine VERSION 0.5.0 LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) option(BUILD_TESTS "Build tests" ON) option(BUILD_EXAMPLES "Build examples" ON) option(ENABLE_SANITIZERS "Enable ASan" OFF) option(VDE_USE_GMP "GMP exact arithmetic" OFF) option(VDE_BUILD_PYTHON "Python bindings" OFF) add_library(vde_compile_options INTERFACE) include(cmake/CompilerSettings.cmake) find_package(Eigen3 3.3 QUIET) if(NOT Eigen3_FOUND) include(FetchContent) FetchContent_Declare(Eigen3 URL https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz) FetchContent_MakeAvailable(Eigen3) endif() add_subdirectory(src) if(BUILD_TESTS) enable_testing() find_package(GTest QUIET) if(NOT GTest_FOUND) include(FetchContent) FetchContent_Declare(googletest URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz) set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) FetchContent_MakeAvailable(googletest) endif() add_subdirectory(tests) endif() if(BUILD_EXAMPLES) add_subdirectory(examples) endif() if(VDE_BUILD_PYTHON) add_subdirectory(python) endif()