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_TESTS "Build hdk-grid tests" OFF) # No examples for grid at the moment add_library(hdk-grid INTERFACE) if(NOT TARGET hdk::hdk-grid) add_library(hdk::hdk-grid ALIAS hdk-grid) endif() target_compile_features(hdk-grid INTERFACE cxx_std_17) target_include_directories( hdk-grid INTERFACE $ $ ) if(HDK_TESTS) add_subdirectory(test) endif() include(GNUInstallDirs) include(CMakePackageConfigHelpers) install(TARGETS hdk-grid EXPORT hdk-gridTargets COMPONENT hdk-grid_dev ) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT hdk-grid_dev ) install(EXPORT hdk-gridTargets FILE hdk-gridTargets.cmake NAMESPACE hdk:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/hdk-grid COMPONENT hdk-grid_dev ) 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 COMPONENT hdk-grid_dev ) # Install metadata files for release package install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${CMAKE_CURRENT_SOURCE_DIR}/../CHANGELOG.md DESTINATION ${CMAKE_INSTALL_DOCDIR}/hdk-grid COMPONENT hdk-grid_release OPTIONAL ) # Documentation Policy include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/HDKDocumentationPolicy.cmake) # CPack Packaging Policy include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/HDKPackaging.cmake) # 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 )