From 1403b602f565b9df5abb141a0bfbd517af537816 Mon Sep 17 00:00:00 2001
From: Soeren Peters <peters.soeren@gmx.net>
Date: Wed, 10 Feb 2021 19:33:50 +0100
Subject: [PATCH] Add project() command to each target to enable cuda only for
 the targets which actually need cuda.

---
 CMake/3rd.cmake                          |  1 -
 CMake/3rd/cuda.cmake                     | 13 -------------
 CMake/3rd/mpi.cmake                      |  2 +-
 CMakeLists.txt                           |  4 ++++
 gpu.cmake                                | 13 -------------
 src/gpu/GksGpu/CMakeLists.txt            |  2 +-
 src/gpu/GridGenerator/CMakeLists.txt     |  2 +-
 src/gpu/Traffic/CMakeLists.txt           |  4 +---
 src/gpu/VirtualFluids_GPU/CMakeLists.txt |  2 +-
 9 files changed, 9 insertions(+), 34 deletions(-)
 delete mode 100644 CMake/3rd/cuda.cmake

diff --git a/CMake/3rd.cmake b/CMake/3rd.cmake
index 6cc488f94..5ec921758 100644
--- a/CMake/3rd.cmake
+++ b/CMake/3rd.cmake
@@ -1,5 +1,4 @@
 include(${VF_CMAKE_DIR}/3rd/boost.cmake)
-include(${VF_CMAKE_DIR}/3rd/cuda.cmake)
 include(${VF_CMAKE_DIR}/3rd/gmock.cmake)
 include(${VF_CMAKE_DIR}/3rd/mpi.cmake)
 include(${VF_CMAKE_DIR}/3rd/OpenMP.cmake)
\ No newline at end of file
diff --git a/CMake/3rd/cuda.cmake b/CMake/3rd/cuda.cmake
deleted file mode 100644
index 73d9b8647..000000000
--- a/CMake/3rd/cuda.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-
-function(linkCUDA)
-
-    set(CUDA_CUT_INCLUDE_DIR "${VF_THIRD_DIR}/cuda_samples/")
-
-    vf_get_library_name(library_name)
-    target_include_directories(${library_name} PRIVATE ${CUDA_CUT_INCLUDE_DIR})
-    target_include_directories(${library_name} PRIVATE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
-
-    # set the following properties only for specific targets
-    # set_property(TARGET ${targetName} PROPERTY CUDA_SEPARABLE_COMPILATION ON)
-    # set_property(TARGET ${targetName} PROPERTY CUDA_64_BIT_DEVICE_CODE ON)
-endfunction()
diff --git a/CMake/3rd/mpi.cmake b/CMake/3rd/mpi.cmake
index 93b3ee386..3cdcfadf7 100644
--- a/CMake/3rd/mpi.cmake
+++ b/CMake/3rd/mpi.cmake
@@ -3,7 +3,7 @@ function (linkMPI)
     find_package(MPI REQUIRED)
 
     vf_get_library_name(library_name)
-    target_include_directories(${library_name} PUBLIC ${MPI_CXX_INCLUDE_PATH})
+    #target_include_directories(${library_name} PUBLIC ${MPI_CXX_INCLUDE_PATH})
     target_link_libraries(${library_name} PRIVATE MPI::MPI_CXX)
 
 endfunction()
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8d7437689..dafb380b4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -106,6 +106,10 @@ if(BUILD_VF_GPU)
 
     message("CUDA Architecture: ${CMAKE_CUDA_ARCHITECTURES}")
 
+    set(CUDA_CUT_INCLUDE_DIR "${VF_THIRD_DIR}/cuda_samples/")
+    include_directories(${CUDA_CUT_INCLUDE_DIR})
+    include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
+
     include (gpu.cmake)
 endif()
 
diff --git a/gpu.cmake b/gpu.cmake
index 29fe0d826..6bdff5205 100644
--- a/gpu.cmake
+++ b/gpu.cmake
@@ -1,14 +1,4 @@
 
-#############################################################
-###                     CUDAPATH                          ###
-#############################################################
-
-# if CMake cannot find CUDA by itself, set the correct paths manually:
-#SET(CUDA_CUT_INCLUDE_DIR    "/cluster/cuda/9.0/include;/cluster/cuda/9.0/samples/common/inc" CACHE PATH "CUDA_CUT_INCLUDE_DIR")
-#SET(CUDA_SAMPLE_INCLUDE_DIR "/cluster/cuda/9.0/samples/common/inc" CACHE PATH "CUDA_CUT_INCLUDE_DIR")
-
-
-#############################################################
 
 if(BUILD_NUMERIC_TESTS)
     set(CMAKE_CXX_STANDARD 17)
@@ -24,9 +14,6 @@ ENDIF()
 
 set(CMAKE_CUDA_FLAGS_DEBUG " -G" CACHE STRING "" FORCE)
 
-#############################################################
-
-enable_language(CUDA)
 
 ##########################################################################################################################
 ###                  Subdirectories                                                                                    ###
diff --git a/src/gpu/GksGpu/CMakeLists.txt b/src/gpu/GksGpu/CMakeLists.txt
index 88df905d3..facd4b663 100644
--- a/src/gpu/GksGpu/CMakeLists.txt
+++ b/src/gpu/GksGpu/CMakeLists.txt
@@ -1,7 +1,7 @@
+project(GksGpu LANGUAGES CUDA CXX)
 
 vf_add_library(BUILDTYPE shared PRIVATE_LINK basics GksMeshAdapter)
 
-linkCUDA()
 linkMPI()
 
 vf_get_library_name(library_name)
diff --git a/src/gpu/GridGenerator/CMakeLists.txt b/src/gpu/GridGenerator/CMakeLists.txt
index 46866937e..57431eab6 100644
--- a/src/gpu/GridGenerator/CMakeLists.txt
+++ b/src/gpu/GridGenerator/CMakeLists.txt
@@ -1,9 +1,9 @@
+project(GridGenerator LANGUAGES CUDA CXX)
 
 
 vf_add_library(PRIVATE_LINK basics)
 vf_get_library_name(library_name)
 
-linkCUDA()
 linkOpenMP(${library_name})
 
 
diff --git a/src/gpu/Traffic/CMakeLists.txt b/src/gpu/Traffic/CMakeLists.txt
index c836ac391..249594e04 100644
--- a/src/gpu/Traffic/CMakeLists.txt
+++ b/src/gpu/Traffic/CMakeLists.txt
@@ -1,5 +1,3 @@
-
+project(Traffic LANGUAGES CUDA CXX)
 
 vf_add_library(BUILDTYPE shared PRIVATE_LINK GridGenerator basics)
-
-linkCUDA()
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/CMakeLists.txt b/src/gpu/VirtualFluids_GPU/CMakeLists.txt
index 442efdc14..2df796f2f 100644
--- a/src/gpu/VirtualFluids_GPU/CMakeLists.txt
+++ b/src/gpu/VirtualFluids_GPU/CMakeLists.txt
@@ -1,3 +1,4 @@
+project(VirtualFluids_GPU LANGUAGES CUDA CXX)
 
 IF(MSVC)
     set(libsToLink ws2_32 GridGenerator basics Traffic) # ws_32 throws an error on Phoenix
@@ -10,7 +11,6 @@ ENDIF(MSVC)
 vf_add_library(PRIVATE_LINK ${libsToLink})
 
 linkMPI()
-linkCUDA()
 linkBoost(COMPONENTS "serialization")
 
 #SET(TPN_WIN32 "/EHsc")
-- 
GitLab