cmake_minimum_required(VERSION 3.20) project(hdk-grid VERSION 0.0.1 LANGUAGES CXX ) # Note: The src/ directory contains Doxygen documentation-only .cpp files. # This is a header-only library; src/ files are not compiled into any targets. option(HDK_GRID_TESTS "Build hdk-grid tests" ${HDK_TESTS}) # No examples for grid at the moment add_library(hdk-grid INTERFACE) target_compile_features(hdk-grid INTERFACE cxx_std_17) target_include_directories( hdk-grid INTERFACE $ $ ) if(HDK_GRID_TESTS) add_subdirectory(test) endif() include(GNUInstallDirs) include(CMakePackageConfigHelpers) install(TARGETS hdk-grid EXPORT hdk-gridTargets ) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install(EXPORT hdk-gridTargets FILE hdk-gridTargets.cmake NAMESPACE hdk:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/hdk-grid ) configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/hdk-gridConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/hdk-gridConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/hdk-grid ) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/hdk-gridConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/hdk-gridConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/hdk-gridConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/hdk-grid ) # TODO: Link to dependencies if we need but keep them minimal and optional. # DIRS important for coverage filtering list(APPEND HDK_COVERAGE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include )