~ruther/guix-local

ref: 27d5cb606d37d73a1bb056ddeaec9e9b9f4e70d7 guix-local/gnu/packages/patches/gromacs-tinyxml2.patch -rw-r--r-- 2.6 KiB
27d5cb60 — Nicolas Graves gnu: Add pardus-archive-keyring. 1 year, 2 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Unbundling tinyxml2 from gromacs and using our own, which is newer, broke gromacs
build.

This patch fixes this issue:

- Error handling API changed, fix the testutils/refdata_xml.cpp code by using the
  new API: document.ErrorStr() & tinyxml2::XML_SUCCESS.

Those fixes will be submitted for inclusion to upstream, but may not be suitable
there as long as they still keep the old version bundled.

First hunk has already been requested for merging. Third is in discussion. Second
will only be sent if third is OK'ed.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index cd748c9..1e90c95 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -539,9 +539,6 @@ if(GMX_EXTERNAL_TINYXML2)
     if(NOT HAVE_TINYXML2)
         message(FATAL_ERROR "External TinyXML-2 could not be found, please adjust your search paths")
     endif()
-    if (TinyXML2_FOUND AND TinyXML2_VERSION VERSION_GREATER "6")
-        message(FATAL_ERROR "External TinyXML-2 is later than the highest supported version 6. Please adjust your search paths to include a supported version")
-    endif()
 endif()
 
 option(GMX_EXTRAE "Add support for tracing using EXTRAE" OFF)
diff --git a/src/testutils/refdata_xml.cpp b/src/testutils/refdata_xml.cpp
index 0eb2209..57cebff 100644
--- a/src/testutils/refdata_xml.cpp
+++ b/src/testutils/refdata_xml.cpp
@@ -206,21 +206,12 @@ ReferenceDataEntry::EntryPointer readReferenceDataFile(const std::string& path)
     document.LoadFile(path.c_str());
     if (document.Error())
     {
-        const char* errorStr1 = document.GetErrorStr1();
-        const char* errorStr2 = document.GetErrorStr2();
+        const char* errorStr = document.ErrorStr();
         std::string errorString("Error was ");
-        if (errorStr1)
-        {
-            errorString += errorStr1;
-        }
-        if (errorStr2)
-        {
-            errorString += errorStr2;
-        }
-        if (!errorStr1 && !errorStr2)
-        {
+        if (errorStr)
+            errorString += errorStr;
+        else
             errorString += "not specified.";
-        }
         GMX_THROW(TestException("Reference data not parsed successfully: " + path + "\n."
                                 + errorString + "\n"));
     }
@@ -371,7 +362,7 @@ void writeReferenceDataFile(const std::string& path, const ReferenceDataEntry& r
     XMLElementPtr rootElement = createRootElement(&document);
     createChildElements(rootElement, rootEntry);
 
-    if (document.SaveFile(path.c_str()) != tinyxml2::XML_NO_ERROR)
+    if (document.SaveFile(path.c_str()) != tinyxml2::XML_SUCCESS)
     {
         GMX_THROW(TestException("Reference data saving failed in " + path));
     }