##====================================================================================================================== ## ROTGEN - Runtime Overlay for Eigen ## Copyright : CODE RECKONS ## SPDX-License-Identifier: BSL-1.0 ##====================================================================================================================== cmake_minimum_required(VERSION 3.22) enable_testing() ##====================================================================================================================== ## Setup project ##====================================================================================================================== set(ROTGEN_MAJOR_VERSION 0) set(ROTGEN_MINOR_VERSION 0) set(ROTGEN_PATCH_VERSION 1) set(ROTGEN_VERSION ${ROTGEN_MAJOR_VERSION}.${ROTGEN_MINOR_VERSION}.${ROTGEN_PATCH_VERSION}) set(PROJECT_VERSION ${ROTGEN_VERSION}) project(ROTGEN VERSION ${PROJECT_VERSION} DESCRIPTION "Runtime Overlay for Eigen" LANGUAGES CXX) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ROTGEN_SOURCE_DIR}/cmake ) ##====================================================================================================================== ## Prevent in-source build ##====================================================================================================================== if (${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR}) message(FATAL_ERROR "[${PROJECT_NAME}]: In-source build is not supported") endif() ##====================================================================================================================== ## Sources & Public Headers lists ##====================================================================================================================== set ( SOURCES src/matrix_impl64.cpp ) ##====================================================================================================================== ## Setup the library's dependencies ##====================================================================================================================== find_package (Eigen3 3.4 REQUIRED NO_MODULE) ##====================================================================================================================== ## Setup the library's build ##====================================================================================================================== add_library(rotgen SHARED ${SOURCES}) set_target_properties(rotgen PROPERTIES VERSION ${PROJECT_VERSION}) set_target_properties(rotgen PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR}) target_compile_features(rotgen INTERFACE cxx_std_17) set_target_properties(rotgen PROPERTIES EXPORT_NAME rotgen) add_library(rotgen::rotgen ALIAS rotgen) target_include_directories(rotgen PUBLIC $ $ ) target_link_libraries (rotgen PRIVATE Eigen3::Eigen) ##====================================================================================================================== ## Setup the library's installation target ##====================================================================================================================== include(${ROTGEN_SOURCE_DIR}/cmake/config/rotgen-install.cmake) ##====================================================================================================================== ## Setup the library's Tests ##====================================================================================================================== add_subdirectory(test)