From 1c757b52b4b1cc991f4b67d32cc0880cd98de3ea Mon Sep 17 00:00:00 2001
From: "TESLA01\\soerenpeters" <peters@irmb.tu-bs.de>
Date: Fri, 2 Oct 2020 15:22:23 +0200
Subject: [PATCH] Remove msvc compiler warnings for basics and cpu. Fix exclude
 in cmake target files.

---
 3rdParty/MuParser/CMakeLists.txt                    |  1 +
 CMake/FileUtilities.cmake                           | 13 +++++++------
 CMake/compilerflags/MSVC.cmake                      | 12 +++++++-----
 .../Input/ConfigFileReader/ConfigFileReader.cpp     |  6 +++---
 src/basics/Core/Timer/TimerImp.cpp                  |  4 ++--
 src/basics/Core/buildInfo.in.cpp                    |  3 +++
 src/basics/basics/utilities/UbSystem.h              |  2 +-
 7 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/3rdParty/MuParser/CMakeLists.txt b/3rdParty/MuParser/CMakeLists.txt
index 3f2d48be0..14a1e4e45 100644
--- a/3rdParty/MuParser/CMakeLists.txt
+++ b/3rdParty/MuParser/CMakeLists.txt
@@ -32,6 +32,7 @@ if(MSVC)
     else()
         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
     endif()
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4251 /wd4310 /wd4267") # disable all muparser warnings
 elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
     # Update if necessary
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic")
diff --git a/CMake/FileUtilities.cmake b/CMake/FileUtilities.cmake
index 4d42efced..151000a68 100644
--- a/CMake/FileUtilities.cmake
+++ b/CMake/FileUtilities.cmake
@@ -170,22 +170,23 @@ function(collectFiles source_files ARG_FILES ARG_FOLDER ARG_EXCLUDE)
 		endforeach()
 	endif()
 
-
 	if (NOT ARG_FILES AND NOT ARG_FOLDER)
 		file ( GLOB_RECURSE all_files ${VIRTUAL_FLUIDS_GLOB_FILES} )
 		set(local_source_files ${local_source_files} ${all_files})
 	endif()
-
-
+	
 	if (ARG_EXCLUDE)
 		foreach(file_path ${local_source_files})
+		    set(exclude_file OFF)
 			foreach(file_exclude ${ARG_EXCLUDE})
 				get_filename_component(file_name ${file_path} NAME)
-				if (NOT ${file_name} STREQUAL ${file_exclude})
-					set(new_files ${new_files} ${file_path})
+				if (${file_name} STREQUAL ${file_exclude})
+					set(exclude_file TRUE)
 				endif()
-
 			endforeach()
+			if (NOT ${exclude_file})	
+				set(new_files ${new_files} ${file_path})
+			endif()
 		endforeach()
 		set(local_source_files ${new_files})
 	endif()
diff --git a/CMake/compilerflags/MSVC.cmake b/CMake/compilerflags/MSVC.cmake
index 0a279571c..4a535897e 100644
--- a/CMake/compilerflags/MSVC.cmake
+++ b/CMake/compilerflags/MSVC.cmake
@@ -19,9 +19,11 @@ ENDIF()
 ## Flags
 ###############################################################################################################
 LIST(APPEND VF_COMPILER_DEFINITION _CRT_SECURE_NO_DEPRECATE) # disable warnings promoting Microsoft's security enhanced CRT
-LIST(APPEND VF_COMPILER_DEFINITION _SCL_SECURE_NO_WARNINGS)  # disable warnings triggered by Microsoft's checked iterators
-LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4996") # deprecated strcpy...
-LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4800") # forcing value to bool 'true' or 'false' (performance warning)
-LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/bigobj") # ansonsten funzt mit boost das compilieren unter windows nimmer
+#LIST(APPEND VF_COMPILER_DEFINITION _SCL_SECURE_NO_WARNINGS)  # disable warnings triggered by Microsoft's checked iterators
+#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4996") # deprecated strcpy...
+#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4800") # forcing value to bool 'true' or 'false' (performance warning)
 
-LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-MP") # enable multi-threaded compiling
\ No newline at end of file
+LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/bigobj") # increases that address capacity to 4,294,967,296 (2^32).
+LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-MP") # enable multi-threaded compiling
+
+LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4251") # disable needs to have dll interface
\ No newline at end of file
diff --git a/src/basics/Core/Input/ConfigFileReader/ConfigFileReader.cpp b/src/basics/Core/Input/ConfigFileReader/ConfigFileReader.cpp
index 690c4b19e..1053a7f5f 100644
--- a/src/basics/Core/Input/ConfigFileReader/ConfigFileReader.cpp
+++ b/src/basics/Core/Input/ConfigFileReader/ConfigFileReader.cpp
@@ -173,7 +173,7 @@ BASICS_EXPORT std::shared_ptr<ConfigData> ConfigFileReader::readConfigFile(const
 		data->setGeometryFileF(input->getValue("GeometryF"));
 	//////////////////////////////////////////////////////////////////////////
 	if (input->getValue("measureClockCycle") != "")
-		data->setClockCycleForMP(StringUtil::toFloat(input->getValue("measureClockCycle")));
+		data->setClockCycleForMP(StringUtil::toInt(input->getValue("measureClockCycle")));
 
 	if (input->getValue("measureTimestep") != "")
 		data->setTimestepForMP(StringUtil::toInt(input->getValue("measureTimestep")));
@@ -208,10 +208,10 @@ BASICS_EXPORT std::shared_ptr<ConfigData> ConfigFileReader::readConfigFile(const
 		data->setNumberOfParticles(StringUtil::toInt(input->getValue("numberOfParticles")));
 
 	if (input->getValue("startXHotWall") != "")
-		data->setStartXHotWall(StringUtil::toDouble(input->getValue("startXHotWall")));
+		data->setStartXHotWall(real(StringUtil::toDouble(input->getValue("startXHotWall"))));
 
 	if (input->getValue("endXHotWall") != "")
-		data->setEndXHotWall(StringUtil::toDouble(input->getValue("endXHotWall")));
+		data->setEndXHotWall(real(StringUtil::toDouble(input->getValue("endXHotWall"))));
 	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 	//Restart
 	if (input->getValue("TimeDoCheckPoint") != "")
diff --git a/src/basics/Core/Timer/TimerImp.cpp b/src/basics/Core/Timer/TimerImp.cpp
index 4eb735424..7942f970a 100644
--- a/src/basics/Core/Timer/TimerImp.cpp
+++ b/src/basics/Core/Timer/TimerImp.cpp
@@ -13,10 +13,10 @@ void TimerImp::end()
 
 real TimerImp::getTimeInSeconds() const
 {
-    return std::chrono::duration_cast<std::chrono::microseconds>( endTime - startTime ).count() / 1000000.0;
+    return real(std::chrono::duration_cast<std::chrono::microseconds>( endTime - startTime ).count() / 1000000.0);
 }
 
 real TimerImp::getCurrentRuntimeInSeconds() const
 {
-    return std::chrono::duration_cast<std::chrono::microseconds>( std::chrono::high_resolution_clock::now() - startTime ).count() / 1000000.0;
+    return real(std::chrono::duration_cast<std::chrono::microseconds>( std::chrono::high_resolution_clock::now() - startTime ).count() / 1000000.0);
 }
diff --git a/src/basics/Core/buildInfo.in.cpp b/src/basics/Core/buildInfo.in.cpp
index 345331b73..2cd55e865 100644
--- a/src/basics/Core/buildInfo.in.cpp
+++ b/src/basics/Core/buildInfo.in.cpp
@@ -1,5 +1,8 @@
+#include "buildInfo.h"
+
 #include "basics_export.h"
 
+
 namespace buildInfo
 {
     BASICS_EXPORT const char *gitCommitHash() { return "@git_commit_hash@";  }
diff --git a/src/basics/basics/utilities/UbSystem.h b/src/basics/basics/utilities/UbSystem.h
index 3d5044145..8efe16cca 100644
--- a/src/basics/basics/utilities/UbSystem.h
+++ b/src/basics/basics/utilities/UbSystem.h
@@ -473,7 +473,7 @@ namespace UbSystem
       }
       else
       {
-         strcpy(Name, "Unknown_Host_Name");
+         strcpy_s(Name, "Unknown_Host_Name");
       }
 #elif (defined(UBSYSTEM_LINUX) || defined(UBSYSTEM_APPLE) || defined(UBSYSTEM_AIX)) && !defined(UBSYSTEM_CYGWIN)
       memset(Name, 0, 150);
-- 
GitLab