Back out of GPU Codegen if NVPTX is not available

Summary:
When enabling GPU codegen in polly, CMake will fail if NVPTX is not a target
supported by the LLVM polly is being built against. In that case, GPU codegen
should be switched off.

Reviewers: Meinersbur, grosser, bollu

Reviewed By: Meinersbur

Subscribers: mgorny, bollu, pollydev, llvm-commits

Differential Revision: https://reviews.llvm.org/D47888

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@334233 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CMakeLists.txt b/CMakeLists.txt
index af0263b..d2556b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -97,14 +97,17 @@
 SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
 
 option(POLLY_ENABLE_GPGPU_CODEGEN "Enable GPGPU code generation feature" OFF)
+set(GPU_CODEGEN FALSE)
 if (POLLY_ENABLE_GPGPU_CODEGEN)
   # Do not require CUDA/OpenCL, as GPU code generation test cases can be run
   # without a CUDA/OpenCL library.
-  FIND_PACKAGE(CUDA)
-  FIND_PACKAGE(OpenCL)
-  set(GPU_CODEGEN TRUE)
-else(POLLY_ENABLE_GPGPU_CODEGEN)
-  set(GPU_CODEGEN FALSE)
+  if ("NVPTX" IN_LIST LLVM_TARGETS_TO_BUILD)
+    FIND_PACKAGE(CUDA)
+    FIND_PACKAGE(OpenCL)
+    set(GPU_CODEGEN TRUE)
+  else()
+    message(WARNING "The LLVM NVPTX target is required for GPU code generation")
+  endif()
 endif(POLLY_ENABLE_GPGPU_CODEGEN)