diff --git a/cmake/1_FindCUDAToolkit/CMakeLists.txt b/cmake/1_FindCUDAToolkit/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..dbbc3b22540256caf234e53673430870511b02d0 --- /dev/null +++ b/cmake/1_FindCUDAToolkit/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required (VERSION 3.17) +project (HelloWorld) +set(CUDAToolkit_ROOT "${CMAKE_BINARY_DIR}/extracted/cuda") +find_package(CUDAToolkit) diff --git a/cmake/1_FindCUDAToolkit/README.md b/cmake/1_FindCUDAToolkit/README.md new file mode 100644 index 0000000000000000000000000000000000000000..3da2977d49afa161b56ca9a84952607efe42c5e5 --- /dev/null +++ b/cmake/1_FindCUDAToolkit/README.md @@ -0,0 +1,20 @@ +# CMake example 1: FindCUDAToolkit + +FindCUDAToolkit is the recommended module for importing CUDA components into the CMake build system (3.17 and newer). + +The path to the extraction location can be specified with `-DCUDAToolkit_ROOT=$PWD/extracted` or the `CUDAToolkit_ROOT` environmental variable + +> **NOTE:** The minimum required components for the FindCUDAToolkit module are `cuda_cudart` and `cuda_nvcc`. + +## Commands + +```shell +mkdir extracted +cd extracted +tar -xf cuda_nvcc-linux-x86_64-*-archive.tar.xz +tar -xf cuda_nvcc-linux-x86_64-*-archive.tar.xz +mkdir cuda +rsync -av *-archive/ cuda/ +cd .. +cmake . +``` diff --git a/cmake/2_ExternalProject/CMakeLists.txt b/cmake/2_ExternalProject/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e32e236143d39938ade7304314efc0eda54c18b1 --- /dev/null +++ b/cmake/2_ExternalProject/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required (VERSION 3.17) +project (CUDA) +set(CUDAToolkit_ROOT "${CMAKE_BINARY_DIR}/extracted/cuda") +find_package(CUDAToolkit) diff --git a/cmake/2_ExternalProject/README.md b/cmake/2_ExternalProject/README.md new file mode 100644 index 0000000000000000000000000000000000000000..effd87ced8d6ca3f5c5105cb4e46cbdfe7019060 --- /dev/null +++ b/cmake/2_ExternalProject/README.md @@ -0,0 +1,10 @@ +# CMake example 2: ExternalProject + +The ExternalProject_Add module downloads archives from a URL + +## Commands + +```shell +cmake . +make +```