From 262a0eb7e9f8c0661c3e3463357af38233d65242 Mon Sep 17 00:00:00 2001
From: Simon Praetorius <simon.praetorius@tu-dresden.de>
Date: Sun, 30 Oct 2016 20:43:20 +0100
Subject: [PATCH] workaround for windows macro definitions

---
 AMDiS/cmake/muparser.cmake                          |  2 +-
 AMDiS/cmake3/muparser.cmake                         |  2 +-
 AMDiS/lib/muparser_v134/include/muParserBase.h      |  2 +-
 AMDiS/lib/muparser_v134/include/muParserToken.h     |  2 +-
 AMDiS/lib/muparser_v134/src/muParserTest.cpp        |  2 +-
 AMDiS/lib/muparser_v134/src/muParserTokenReader.cpp |  2 +-
 AMDiS/src/config/Config_msc.h                       |  8 ++++++++
 AMDiS/src/io/detail/Arh3Writer.cc                   | 12 ++++++------
 AMDiS/src/io/detail/Arh3Writer.h                    |  2 +-
 9 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/AMDiS/cmake/muparser.cmake b/AMDiS/cmake/muparser.cmake
index bb161dae..36aacc92 100644
--- a/AMDiS/cmake/muparser.cmake
+++ b/AMDiS/cmake/muparser.cmake
@@ -18,7 +18,7 @@ include_directories(${MUPARSER_INCLUDE_DIR})
 
 
 if (ENABLE_CXX11)
-  add_definitions(-DMUPARSER_HAS_CXX11=1)
+  add_definitions(-DAMDIS_HAS_CXX11=1)
 endif (ENABLE_CXX11)
 
 # specify how to install this target:
diff --git a/AMDiS/cmake3/muparser.cmake b/AMDiS/cmake3/muparser.cmake
index 448bd8f2..22427c2b 100644
--- a/AMDiS/cmake3/muparser.cmake
+++ b/AMDiS/cmake3/muparser.cmake
@@ -18,7 +18,7 @@ target_include_directories(muparser PUBLIC ${MUPARSER_INCLUDE_DIR})
 
 if (ENABLE_CXX11)
   target_enable_cxx11(MUPARSER_ENABLE_CXX11 muparser PRIVATE)
-  target_compile_definitions(muparser PRIVATE MUPARSER_HAS_CXX11=1)
+  target_compile_definitions(muparser PRIVATE AMDIS_HAS_CXX11=1)
 endif (ENABLE_CXX11)
 
 # specify how to install this target:
diff --git a/AMDiS/lib/muparser_v134/include/muParserBase.h b/AMDiS/lib/muparser_v134/include/muParserBase.h
index be7f02c0..f15eb2d2 100644
--- a/AMDiS/lib/muparser_v134/include/muParserBase.h
+++ b/AMDiS/lib/muparser_v134/include/muParserBase.h
@@ -262,7 +262,7 @@ private:
     mutable stringbuf_type  m_vStringBuf; ///< String buffer, used for storing string function arguments
     stringbuf_type  m_vStringVarBuf;
 
-#if MUPARSER_HAS_CXX11
+#if AMDIS_HAS_CXX11
     std::unique_ptr<token_reader_type> m_pTokenReader; ///< Managed pointer to the token reader object.
 #else
     std::auto_ptr<token_reader_type> m_pTokenReader; ///< Managed pointer to the token reader object.
diff --git a/AMDiS/lib/muparser_v134/include/muParserToken.h b/AMDiS/lib/muparser_v134/include/muParserToken.h
index e2ea7f5e..512f6d6c 100644
--- a/AMDiS/lib/muparser_v134/include/muParserToken.h
+++ b/AMDiS/lib/muparser_v134/include/muParserToken.h
@@ -78,7 +78,7 @@ namespace mu
       TString m_strTok;   ///< Token string
       TString m_strVal;   ///< Value for string variables
       value_type m_fVal;
-#if MUPARSER_HAS_CXX11
+#if AMDIS_HAS_CXX11
       std::unique_ptr<ParserCallback> m_pCallback;
 #else
       std::auto_ptr<ParserCallback> m_pCallback;
diff --git a/AMDiS/lib/muparser_v134/src/muParserTest.cpp b/AMDiS/lib/muparser_v134/src/muParserTest.cpp
index cd61092f..3b2b8560 100644
--- a/AMDiS/lib/muparser_v134/src/muParserTest.cpp
+++ b/AMDiS/lib/muparser_v134/src/muParserTest.cpp
@@ -1040,7 +1040,7 @@ namespace mu
 
       try
       {
-#if MUPARSER_HAS_CXX11
+#if AMDIS_HAS_CXX11
         std::unique_ptr<Parser> p1;
 #else
         std::auto_ptr<Parser> p1;
diff --git a/AMDiS/lib/muparser_v134/src/muParserTokenReader.cpp b/AMDiS/lib/muparser_v134/src/muParserTokenReader.cpp
index 02dd026b..b39cd524 100644
--- a/AMDiS/lib/muparser_v134/src/muParserTokenReader.cpp
+++ b/AMDiS/lib/muparser_v134/src/muParserTokenReader.cpp
@@ -145,7 +145,7 @@ namespace mu
   */
   ParserTokenReader* ParserTokenReader::Clone(ParserBase *a_pParent) const
   {
-#if MUPARSER_HAS_CXX11
+#if AMDIS_HAS_CXX11
     std::unique_ptr<ParserTokenReader> ptr(new ParserTokenReader(*this));
 #else
     std::auto_ptr<ParserTokenReader> ptr(new ParserTokenReader(*this));
diff --git a/AMDiS/src/config/Config_msc.h b/AMDiS/src/config/Config_msc.h
index e08c4288..fbc74b16 100644
--- a/AMDiS/src/config/Config_msc.h
+++ b/AMDiS/src/config/Config_msc.h
@@ -57,6 +57,14 @@ typedef __declspec(align(CACHE_LINE)) size_t aligned_size_t;
 #undef min
 #endif
 
+#ifdef NONE
+#undef NONE
+#endif
+
+#ifdef THIS
+#undef THIS
+#endif
+
 #if MSC_VERSION >= 1800 && !defined(HAS_VARIADIC_TEMPLATES)
   #define HAS_VARIADIC_TEMPLATES 1
 #endif
diff --git a/AMDiS/src/io/detail/Arh3Writer.cc b/AMDiS/src/io/detail/Arh3Writer.cc
index 2af797c7..c2f90774 100644
--- a/AMDiS/src/io/detail/Arh3Writer.cc
+++ b/AMDiS/src/io/detail/Arh3Writer.cc
@@ -140,7 +140,7 @@ namespace AMDiS { namespace io {
 	      macroFilename + ';' + perFilename;
 
 	    macroFile_nl = macroFile.length();
-	  } else if (writeMacro == Macroformat::THIS) {
+	  } else if (writeMacro == Macroformat::SELF) {
 	    macroFile_nl = 13;
 	    readFileToString(macroFilename, macroData);
 
@@ -163,7 +163,7 @@ namespace AMDiS { namespace io {
 	}
 
 	// write macro and periodic file
-	if (writeMacro == Macroformat::THIS && macroFilename.length()) {
+	if (writeMacro == Macroformat::SELF && macroFilename.length()) {
 	  file.seekp(0, ios_base::end);
 	  long macroPos = file.tellp(), perPos = 0;
 	  file.write(macroData.c_str(), macroData.length());
@@ -354,7 +354,7 @@ namespace AMDiS { namespace io {
 	      macroFilename + ';' + perFilename;
 
 	    macroFile_nl = macroFile.length();
-	  } else if (writeMacro == Macroformat::THIS) {
+	  } else if (writeMacro == Macroformat::SELF) {
 	    macroFile_nl = perFilename.length() ? 27 : 13;
 	    macroFile.resize(macroFile_nl, ' ');
 	  }
@@ -604,7 +604,7 @@ namespace AMDiS { namespace io {
 	//reset the macro positions in file
 	setMacrosPos(file, headerLen, macroSize);
 
-	if (writeMacro == Macroformat::THIS)
+	if (writeMacro == Macroformat::SELF)
 	  setMacroFile(file, headerLen, mesh, writeMacro);
 
         file.close();
@@ -634,8 +634,8 @@ namespace AMDiS { namespace io {
       {
 	FUNCNAME("setMacroFile()");
 
-	TEST_EXIT(writeMacro == Macroformat::THIS)
-	  ("This function should only be called under Macroformat::THIS.\n");
+	TEST_EXIT(writeMacro == Macroformat::SELF)
+	  ("This function should only be called under Macroformat::SELF.\n");
 
 	string macroFilename = "", perFilename = "";
 	string macroData = "", periodicData = "";
diff --git a/AMDiS/src/io/detail/Arh3Writer.h b/AMDiS/src/io/detail/Arh3Writer.h
index 6e9ac97a..61986009 100644
--- a/AMDiS/src/io/detail/Arh3Writer.h
+++ b/AMDiS/src/io/detail/Arh3Writer.h
@@ -27,7 +27,7 @@ namespace AMDiS { namespace io {
       typedef enum{
 	  NONE = 0, 		// no macro
 	  PT_MACROFILE = 1, 	// pointer to macro file
-	  THIS = 2		// pointer to this file, at the end of this file
+	  SELF = 2		// pointer to this file, at the end of this file
       } Value;
     };
 
-- 
GitLab