* gnu/packages/chemistry.scm (gromacs): Update to 2022.4. * gnu/packages/patches/gromacs-tinyxml2.patch: Adjust accordingly.
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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));
 | |
|      }
 |