From 04c65204c6f1dd65b92370e23075ed651e290c4b Mon Sep 17 00:00:00 2001
From: Soeren Peters <peters@irmb.tu-bs.de>
Date: Wed, 26 Aug 2020 15:56:57 +0200
Subject: [PATCH] Remove unused stuff and the global include from
 VirtualFluidsDefinition.h. Adds missing export includes.

---
 apps/gpu/LidDrivenCavity/CMakeLists.txt       |  2 +-
 gpu.cmake                                     |  6 +--
 src/basics/CMakeLists.txt                     |  8 ++--
 src/basics/Core/DataTypes.h                   |  2 +-
 src/basics/Core/RealConstants.h               |  2 +-
 src/gpu/GridGenerator/utilities/math/Math.cu  |  2 +
 src/gpu/VirtualFluidsDefinitions.in.h         | 40 -------------------
 .../DataStructureInitializer/GridProvider.h   |  1 +
 .../VirtualFluids_GPU/GPU/CudaMemoryManager.h |  1 +
 src/gpu/VirtualFluids_GPU/LBM/Simulation.h    |  1 +
 src/gpu/VirtualFluids_GPU/Output/DataWriter.h |  1 +
 .../VirtualFluids_GPU/Parameter/Parameter.h   |  1 +
 12 files changed, 16 insertions(+), 51 deletions(-)

diff --git a/apps/gpu/LidDrivenCavity/CMakeLists.txt b/apps/gpu/LidDrivenCavity/CMakeLists.txt
index 6029aca23..c404f6a6d 100644
--- a/apps/gpu/LidDrivenCavity/CMakeLists.txt
+++ b/apps/gpu/LidDrivenCavity/CMakeLists.txt
@@ -12,7 +12,7 @@ set(includeDirectories "${CMAKE_SOURCE_DIR}/src/gpu"
 PROJECT(LidDrivenCavity)
 
 
-vf_add_library(BUILDTYPE binary DEPENDS VirtualFluids_GPU basics GridGenerator GksMeshAdapter GksGpu FILES LidDrivenCavity.cpp)
+vf_add_library(BUILDTYPE binary DEPENDS basics GridGenerator VirtualFluids_GPU GksMeshAdapter GksGpu FILES LidDrivenCavity.cpp)
 
 vf_get_library_name(library_name)
 target_include_directories(${library_name} PRIVATE ${includeDirectories} )
\ No newline at end of file
diff --git a/gpu.cmake b/gpu.cmake
index 44dbfb50d..7eba1c758 100644
--- a/gpu.cmake
+++ b/gpu.cmake
@@ -82,11 +82,7 @@ enable_language(CUDA)
 
 include(${CMAKE_PATH}/CMakeMacros_old/general/FindCompiler.cmake)
 configure_file(src/gpu/VirtualFluidsDefinitions.in.h VirtualFluidsDefinitions.h)
-IF(MSVC)
-    SET( CMAKE_CXX_FLAGS "/FI${CMAKE_BINARY_DIR}/VirtualFluidsDefinitions.h ${CMAKE_CXX_FLAGS}" )
-ELSE(MSVC)
-    SET( CMAKE_CXX_FLAGS "-include ${CMAKE_BINARY_DIR}/VirtualFluidsDefinitions.h ${CMAKE_CXX_FLAGS}" )
-ENDIF(MSVC)
+
 
 # only use this with device of CC larger than 6.0
 IF(VF_DOUBLE_ACCURACY)
diff --git a/src/basics/CMakeLists.txt b/src/basics/CMakeLists.txt
index ef9836464..476cbdc75 100644
--- a/src/basics/CMakeLists.txt
+++ b/src/basics/CMakeLists.txt
@@ -19,9 +19,7 @@ include(Core/buildInfo.cmake)
 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/VirtualFluidsCore)
 INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH})
 
-IF(MSVC)
-    add_compile_definitions(NOMINMAX)                # Disable Min/Max-Macros
-ENDIF(MSVC)
+
 
 vf_add_library(BUILDTYPE static
                FOLDER
@@ -52,6 +50,10 @@ vf_get_library_name (library_name)
 target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/Core)
 target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
 
+IF(MSVC)
+    target_compile_definitions(${library_name} PUBLIC NOMINMAX) # Disable Min/Max-Macros
+ENDIF(MSVC)
+
 include (${CMAKE_PATH}/3rd/mpi.cmake)
 
 vf_add_tests()
\ No newline at end of file
diff --git a/src/basics/Core/DataTypes.h b/src/basics/Core/DataTypes.h
index 37c09d1fe..b65f3344c 100644
--- a/src/basics/Core/DataTypes.h
+++ b/src/basics/Core/DataTypes.h
@@ -3,7 +3,7 @@
 
 #include <string>
 
-//#include "VirtualFluidsDefinitions.h"
+#include "VirtualFluidsDefinitions.h"
 
 #ifdef VF_DOUBLE_ACCURACY
 typedef double real;
diff --git a/src/basics/Core/RealConstants.h b/src/basics/Core/RealConstants.h
index 46c418d57..a555d7ee2 100644
--- a/src/basics/Core/RealConstants.h
+++ b/src/basics/Core/RealConstants.h
@@ -1,7 +1,7 @@
 #ifndef REAL_CONSTANT_H
 #define REAL_CONSTANT_H
 
-//#include "VirtualFluidsDefinitions.h"
+#include "VirtualFluidsDefinitions.h"
 
 #ifdef VF_DOUBLE_ACCURACY
 #define c1o2		0.5
diff --git a/src/gpu/GridGenerator/utilities/math/Math.cu b/src/gpu/GridGenerator/utilities/math/Math.cu
index 3b35b410c..b6aa04999 100644
--- a/src/gpu/GridGenerator/utilities/math/Math.cu
+++ b/src/gpu/GridGenerator/utilities/math/Math.cu
@@ -34,6 +34,8 @@
 
 #include <cmath>
 
+#include "VirtualFluidsDefinitions.h"
+
 bool vf::Math::equal(const real& val1, const real& val2, real maxRelDiff)
 {
 	const real diff = std::fabs(val1 - val2);
diff --git a/src/gpu/VirtualFluidsDefinitions.in.h b/src/gpu/VirtualFluidsDefinitions.in.h
index 2d5822c1b..587a0a215 100644
--- a/src/gpu/VirtualFluidsDefinitions.in.h
+++ b/src/gpu/VirtualFluidsDefinitions.in.h
@@ -23,44 +23,4 @@
 #cmakedefine VF_CXX_COMPILER_IS_MSVC
 #cmakedefine VF_CXX_COMPILER_IS_CLANG
 
-
-// Generic helper definitions for shared library support
-#if defined _WIN32 || defined __CYGWIN__
-  #define VF_SHARED_LIB_IMPORT __declspec(dllimport)
-  #define VF_SHARED_LIB_EXPORT __declspec(dllexport)
-  #define VF_SHARED_LIB_LOCAL
-#else
-  #if __GNUC__ >= 4
-    #define VF_SHARED_LIB_IMPORT __attribute__ ((visibility ("default")))
-    #define VF_SHARED_LIB_EXPORT __attribute__ ((visibility ("default")))
-    #define VF_SHARED_LIB_LOCAL  __attribute__ ((visibility ("hidden")))
-  #else
-    #define VF_SHARED_LIB_IMPORT
-    #define VF_SHARED_LIB_EXPORT
-    #define VF_SHARED_LIB_LOCAL
-  #endif
-#endif
-
-// Now we use the generic helper definitions above to define VIRTUALFLUIDS_GPU_EXPORT, VF_PROTECTED
-// and VF_PRIVATE. VIRTUALFLUIDS_GPU_EXPORT is for symbols part of the public application programming
-// interface (API), VF_PROTECTED is for symbols used e.g. by public templated or
-// inlined code. These symbols must also be publicly available when compiling the
-// application. VF_PRIVATE are symbols for internal use inside the library only.
-
-#ifdef BUILD_SHARED_LIBS
-   // defined if VF is compiled as a shared library
-   #ifdef VF_SHARED_LIB_SELECT_IMPORTS
-      // defined if we are building the VF SHARED_LIB (instead of using it)
-      #define VIRTUALFLUIDS_GPU_EXPORT VF_SHARED_LIB_IMPORT
-   #else
-      #define VIRTUALFLUIDS_GPU_EXPORT VF_SHARED_LIB_EXPORT
-   #endif
-   #define VF_PRIVATE VF_SHARED_LIB_LOCAL
-#else
-   // VF_SHARED_LIB is not defined: this means VF is a static library
-   #define VIRTUALFLUIDS_GPU_EXPORT
-   #define VF_PRIVATE
-#endif
-#define VF_PROTECTED VIRTUALFLUIDS_GPU_EXPORT
-
 #endif
diff --git a/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridProvider.h b/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridProvider.h
index b4d5a04da..eb16652de 100644
--- a/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridProvider.h
+++ b/src/gpu/VirtualFluids_GPU/DataStructureInitializer/GridProvider.h
@@ -37,6 +37,7 @@
 
 #include <VirtualFluidsDefinitions.h>
 #include "Core/PointerDefinitions.h"
+#include "VirtualFluids_GPU_export.h"
 
 //! \brief Class forwarding for CudaMemoryManager, GridBuilder and Parameter
 class Parameter;
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CudaMemoryManager.h b/src/gpu/VirtualFluids_GPU/GPU/CudaMemoryManager.h
index e8f1ab3ad..322c5592f 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CudaMemoryManager.h
+++ b/src/gpu/VirtualFluids_GPU/GPU/CudaMemoryManager.h
@@ -35,6 +35,7 @@
 
 #include <memory>
 #include "Core/PointerDefinitions.h"
+#include "VirtualFluids_GPU_export.h"
 
 //! \brief Class forwarding for Parameter
 class Parameter;
diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.h b/src/gpu/VirtualFluids_GPU/LBM/Simulation.h
index 4b076cc58..bd1760ce3 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.h
+++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.h
@@ -36,6 +36,7 @@
 #include <Core/PointerDefinitions.h>
 #include <VirtualFluidsDefinitions.h>
 #include "Output/LogWriter.hpp"
+#include "VirtualFluids_GPU_export.h"
 
 //! \brief Class forwarding for CudaMemoryManager, Parameter, GridProvider and DataWriter
 class CudaMemoryManager;
diff --git a/src/gpu/VirtualFluids_GPU/Output/DataWriter.h b/src/gpu/VirtualFluids_GPU/Output/DataWriter.h
index c783771e9..6406cad77 100644
--- a/src/gpu/VirtualFluids_GPU/Output/DataWriter.h
+++ b/src/gpu/VirtualFluids_GPU/Output/DataWriter.h
@@ -35,6 +35,7 @@
 
 #include "Core/PointerDefinitions.h"
 #include "Core/DataTypes.h"
+#include "VirtualFluids_GPU_export.h"
 
 //! \brief Class forwarding for CudaMemoryManager and Parameter
 class Parameter;
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
index 91208a16c..682668410 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
@@ -36,6 +36,7 @@
 #include "LBM/LB.h"
 #include "Core/PointerDefinitions.h"
 #include "VirtualFluidsDefinitions.h"
+#include "VirtualFluids_GPU_export.h"
 
 //! \struct ParameterStruct
 //! \brief struct holds and manages the LB-parameter of the simulation
-- 
GitLab