69 lines
1.7 KiB
CMake
69 lines
1.7 KiB
CMake
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
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
$<INSTALL_INTERFACE:include>
|
|
)
|
|
|
|
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
|
|
)
|