31 lines
888 B
CMake
31 lines
888 B
CMake
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 $<$<CONFIG:Debug>:_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 ()
|