From 0de25e9ab29d89b7451534d08a9a54387bdd5c32 Mon Sep 17 00:00:00 2001
From: Matteo Cicuttin <datafl4sh@toxicnet.eu>
Date: Mon, 30 Mar 2020 11:01:07 +0200
Subject: [PATCH] CMakeLists.txt fixes.

---
 kokkos-testing/fd_catalog/CMakeLists.txt | 24 ++++++++++++++++++------
 kokkos-testing/fd_catalog/fd_kokkos.cpp  |  1 +
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/kokkos-testing/fd_catalog/CMakeLists.txt b/kokkos-testing/fd_catalog/CMakeLists.txt
index f1af9fd..8d3d2f2 100644
--- a/kokkos-testing/fd_catalog/CMakeLists.txt
+++ b/kokkos-testing/fd_catalog/CMakeLists.txt
@@ -8,11 +8,6 @@ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
 set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
-set(THREADS_PREFER_PTHREAD_FLAG ON)
-find_package(Threads REQUIRED)
-set(LINK_LIBS ${LINK_LIBS} Threads::Threads)
-
-
 ######################################################################
 if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
     set(COMPILER_IS_CLANG TRUE)
@@ -24,6 +19,13 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "PGI")
     set(COMPILER_IS_PGI)
 endif ()
 
+
+set(THREADS_PREFER_PTHREAD_FLAG ON)
+find_package(Threads REQUIRED)
+if (COMPILER_IS_CLANG OR COMPILER_IS_INTEL OR COMPILER_IS_GNU)
+    set(LINK_LIBS ${LINK_LIBS} Threads::Threads)
+endif()
+
 find_package(SILO)
 if (SILO_FOUND)
     add_definitions(-DHAVE_SILO)
@@ -138,7 +140,17 @@ endif()
 
 option(ENABLE_OPENMP "Enable OpenMP" OFF)
 if (ENABLE_OPENMP)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
+    if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
+    endif()
+
+    if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -qopenmp")
+    endif()
+
+    if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
+    endif()
 endif()
 
 set(CMAKE_CXX_FLAGS_DEBUG "-g")
diff --git a/kokkos-testing/fd_catalog/fd_kokkos.cpp b/kokkos-testing/fd_catalog/fd_kokkos.cpp
index 338d388..824cd63 100644
--- a/kokkos-testing/fd_catalog/fd_kokkos.cpp
+++ b/kokkos-testing/fd_catalog/fd_kokkos.cpp
@@ -188,6 +188,7 @@ double solve_kokkos(wave_equation_context_kokkos<T>& wec)
             static const T w4 =   -1.0/560.0;
             static const T w[9] = { w4, w3, w2, w1, w0, w1, w2, w3, w4 };
 
+            /* Find a way to disable this when compiling Kokkos/GPU */
 #ifdef DISALLOW_DENORMALS
             _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
             _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
-- 
GitLab