cmake_minimum_required(VERSION 3.28 FATAL_ERROR) project(raiiSafeCuda CXX) option(ENABLE_TESTS "Enable tests' cmake target." ON) find_package(CUDAToolkit REQUIRED) file(GLOB_RECURSE SAFE_CUDA_HEADERS include/*.hpp) file(GLOB_RECURSE SAFE_CUDA_SOURCES src/*.cpp) add_library(raiiSafeCuda SHARED ${SAFE_CUDA_HEADERS} ${SAFE_CUDA_SOURCES} ) target_include_directories(raiiSafeCuda PRIVATE include) target_precompile_headers(raiiSafeCuda PRIVATE ${SAFE_CUDA_HEADERS}) target_compile_definitions(raiiSafeCuda PRIVATE $<$:_GLIBCXX_DEBUG>) target_compile_options(raiiSafeCuda PRIVATE -pipe -Wall -Wextra -pedantic) target_link_libraries(raiiSafeCuda CUDA::cudart) set_target_properties(raiiSafeCuda PROPERTIES CXX_STANDARD 20 CXX_EXTENSIONS OFF INTERPROCEDURAL_OPTIMIZATION ON ) if (ENABLE_TESTS) add_subdirectory(tests) endif ()