From bf03edb51b2c5e46501ed43d97d63f32264edefe Mon Sep 17 00:00:00 2001
From: Omar Padron <omar.padron@kitware.com>
Date: Mon, 25 Mar 2019 20:43:18 -0400
Subject: [PATCH] LLVM package: disable CUDA (#10858)

This avoids using a system-installed CUDA package. In the future a
variant can be added to allow using Spack-installed CUDA, but for
now CUDA support is always disabled.
---
 .../repos/builtin/packages/llvm/package.py    | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py
index 4f7e1583a0..a2e6ae1a94 100644
--- a/var/spack/repos/builtin/packages/llvm/package.py
+++ b/var/spack/repos/builtin/packages/llvm/package.py
@@ -30,6 +30,17 @@ class Llvm(CMakePackage):
 
     variant('clang', default=True,
             description="Build the LLVM C/C++/Objective-C compiler frontend")
+
+    # TODO: The current version of this package unconditionally disables CUDA.
+    #       Better would be to add a "cuda" variant that:
+    #        - Adds dependency on the "cuda" package when enabled
+    #        - Sets the necessary CMake flags when enabled
+    #        - Disables CUDA (as this current version does) only when the
+    #          variant is also disabled.
+
+    # variant('cuda', default=False,
+    #         description="Build the LLVM with CUDA features enabled")
+
     variant('lldb', default=True, description="Build the LLVM debugger")
     variant('lld', default=True, description="Build the LLVM linker")
     variant('internal_unwind', default=True,
@@ -588,6 +599,14 @@ def cmake_args(self):
             '-DPYTHON_EXECUTABLE:PATH={0}'.format(spec['python'].command.path),
         ]
 
+        # TODO: Instead of unconditionally disabling CUDA, add a "cuda" variant
+        #       (see TODO above), and set the paths if enabled.
+        cmake_args.extend([
+            '-DCUDA_TOOLKIT_ROOT_DIR:PATH=IGNORE',
+            '-DCUDA_SDK_ROOT_DIR:PATH=IGNORE',
+            '-DCUDA_NVCC_EXECUTABLE:FILEPATH=IGNORE',
+            '-DLIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES:STRING=IGNORE'])
+
         if '+gold' in spec:
             cmake_args.append('-DLLVM_BINUTILS_INCDIR=' +
                               spec['binutils'].prefix.include)
-- 
GitLab