From f8474f73ed4ee760c295d18f9f6848e792a117eb Mon Sep 17 00:00:00 2001
From: Rafael Ravedutti <rafael.r.ravedutti@fau.de>
Date: Tue, 13 Feb 2024 02:13:39 +0100
Subject: [PATCH] Update CMakeLists.txt

Signed-off-by: Rafael Ravedutti <rafael.r.ravedutti@fau.de>
---
 CMakeLists.txt | 60 +++++++++++++++++++++++++++++---------------------
 1 file changed, 35 insertions(+), 25 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f640b00..cd4a85f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,8 +12,10 @@ endif()
 string(TOLOWER "${TESTCASE}" TESTCASE)
 message(STATUS "Selected testcase: ${TESTCASE}")
 
-option(USE_WALBERLA "USE_WALBERLA" OFF)
-option(COMPILE_CUDA "COMPILE_CUDA" OFF)
+option(USE_WALBERLA "USE_WALBERLA" ON)
+option(USE_MPI "USE_MPI" ON)
+option(COMPILE_CUDA "COMPILE_CUDA" ON)
+option(ENABLE_GPU_DIRECT "ENABLE_GPU_DIRECT" ON)
 
 set(CPU_SRC "${TESTCASE}.cpp")
 set(GPU_SRC "${TESTCASE}.cu")
@@ -25,18 +27,6 @@ set(RUNTIME_COMMON_FILES
     runtime/domain/block_forest.cpp
     runtime/domain/regular_6d_stencil.cpp)
  
-if(USE_MPI)
-    find_package(MPI REQUIRED)
-    include_directories(SYSTEM ${MPI_INCLUDE_PATH})
-    target_link_libraries(pairs ${MPI_LIBRARIES})
-endif()
-
-if(LIKWID_DIR)
-    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLIKWID_PERFMON -llikwid -pthread ")
-    target_link_libraries(pairs -I${LIKWID_DIR}/include -L${LIKWID_DIR}/lib -llikwid)
-    include_directories(${LIKWID_DIR}/include)
-endif()
-
 if(USE_WALBERLA)
     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_WALBERLA_LOAD_BALANCING ")
     find_package(waLBerla REQUIRED)
@@ -53,22 +43,11 @@ endif()
 
 add_library(runtime_cpu STATIC runtime/devices/dummy.cpp)
 target_link_libraries(${CPU_BIN} PRIVATE runtime_cpu)
-
 add_custom_command(OUTPUT ${CPU_SRC} COMMAND python examples/${TESTCASE}.py cpu)
-target_link_libraries(${CPU_BIN} ${CMAKE_EXE_LINKER_FLAGS})
-set_target_properties(${CPU_BIN} PROPERTIES CXX_STANDARD_REQUIRED ON)
-set_target_properties(${CPU_BIN} PROPERTIES CXX_STANDARD 14)
 
 if(COMPILE_CUDA)
     find_package(CUDA REQUIRED)
 
-    add_library(runtime_gpu STATIC runtime/devices/cuda.cu})
-    target_compile_features(runtime_gpu PUBLIC cxx_std_11)
-    set_target_properties(runtime_gpu PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
-
-    #set_property(TARGET ${GPU_BIN} PROPERTY CUDA_SEPARABLE_COMPILATION ON)
-    target_link_libraries(${GPU_BIN} PRIVATE particles)
-
     if(USE_WALBERLA)
         waLBerla_add_executable(
             NAME ${GPU_BIN}
@@ -78,5 +57,36 @@ if(COMPILE_CUDA)
         add_executable(${GPU_BIN} ${GPU_SRC} ${RUNTIME_COMMON_FILES} ${RUNTIME_GPU_FILES})
     endif()
 
+    if(ENABLE_GPU_DIRECT)
+        target_link_libraries(${GPU_BIN} "-DENABLE_CUDA_AWARE_MPI ")
+    endif()
+
+    add_library(runtime_gpu STATIC runtime/devices/cuda.cu)
+    target_compile_features(runtime_gpu PUBLIC cxx_std_11)
+    set_target_properties(runtime_gpu PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
+
+    #set_property(TARGET ${GPU_BIN} PROPERTY CUDA_SEPARABLE_COMPILATION ON)
+    target_link_libraries(${GPU_BIN} PRIVATE runtime_gpu)
     add_custom_command(OUTPUT ${GPU_SRC} COMMAND python examples/${TESTCASE}.py gpu)
+
+endif()
+
+target_link_libraries(${CPU_BIN} ${CMAKE_EXE_LINKER_FLAGS})
+set_target_properties(${CPU_BIN} PROPERTIES CXX_STANDARD_REQUIRED ON)
+set_target_properties(${CPU_BIN} PROPERTIES CXX_STANDARD 14)
+
+target_link_libraries(${GPU_BIN} ${CMAKE_EXE_LINKER_FLAGS})
+set_target_properties(${GPU_BIN} PROPERTIES CXX_STANDARD_REQUIRED ON)
+set_target_properties(${GPU_BIN} PROPERTIES CXX_STANDARD 14)
+
+if(USE_MPI)
+    find_package(MPI REQUIRED)
+    include_directories(SYSTEM ${MPI_INCLUDE_PATH})
+    target_link_libraries(${CPU_BIN} ${MPI_LIBRARIES})
+    target_link_libraries(${GPU_BIN} ${MPI_LIBRARIES})
+endif()
+
+if(LIKWID_DIR)
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLIKWID_PERFMON -pthread -L${LIKWID_DIR}/lib -llikwid ")
+    include_directories(${LIKWID_DIR}/include)
 endif()
-- 
GitLab