From 2e98fc4ee1861d840d458be58846af78af76f6d7 Mon Sep 17 00:00:00 2001
From: Kevin Mittman <kmittman@nvidia.com>
Date: Thu, 16 Sep 2021 14:51:44 -0700
Subject: [PATCH] Add two examples for CMake

Signed-off-by: Kevin Mittman <kmittman@nvidia.com>
---
 cmake/1_FindCUDAToolkit/CMakeLists.txt |  4 ++++
 cmake/1_FindCUDAToolkit/README.md      | 20 ++++++++++++++++++++
 cmake/2_ExternalProject/CMakeLists.txt |  4 ++++
 cmake/2_ExternalProject/README.md      | 10 ++++++++++
 4 files changed, 38 insertions(+)
 create mode 100644 cmake/1_FindCUDAToolkit/CMakeLists.txt
 create mode 100644 cmake/1_FindCUDAToolkit/README.md
 create mode 100644 cmake/2_ExternalProject/CMakeLists.txt
 create mode 100644 cmake/2_ExternalProject/README.md

diff --git a/cmake/1_FindCUDAToolkit/CMakeLists.txt b/cmake/1_FindCUDAToolkit/CMakeLists.txt
new file mode 100644
index 0000000..dbbc3b2
--- /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 0000000..3da2977
--- /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 0000000..e32e236
--- /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 0000000..effd87c
--- /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
+```
-- 
GitLab