FreeCAD/freecad-xerces_3_3_compat.patch
Dmitry Roshchin eb9f28bb8f - Update to version 1.0.0
- Update to version 1.0.0
  For details, see https://wiki.freecad.org/Release_notes_1.0
  The most notable improvements over the 0.21 release series are:
  * inclusion of the topological naming problem mitigation code
  * an integrated assembly workbench
  * a new materials system
  * and many UI/UX improvements
- Drop obsolete/upstream patches:
  * freecad-copy_options.patch
  * freecad-copy_options-2.patch
  * freecad-boost185.patch
  * boost_1_86_fixes.patch
  * fix_vtk_9_3_compat.patch
  * freecad-xerces_3_3_compat.patch
- Add
  * 0001-Mod-CAM-Add-missing-OpenGL-includes.patch
  * ondselsolver_fix_gcc_75_filesystem.patch

OBS-URL: https://build.opensuse.org/package/show/science/FreeCAD?expand=0&rev=181
2024-11-20 09:03:12 +00:00

336 lines
8.9 KiB
Diff

diff --git a/src/App/Metadata.cpp b/src/App/Metadata.cpp
index 05d58b4..bac6822 100644
--- a/src/App/Metadata.cpp
+++ b/src/App/Metadata.cpp
@@ -58,7 +58,12 @@ directly. If you did not intend to use a system-defined macro
using namespace App;
namespace fs = boost::filesystem;
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
namespace MetadataInternal
{
diff --git a/src/App/MetadataPyImp.cpp b/src/App/MetadataPyImp.cpp
index d3708ad..be478d6 100644
--- a/src/App/MetadataPyImp.cpp
+++ b/src/App/MetadataPyImp.cpp
@@ -30,7 +30,12 @@
#include "MetadataPy.cpp"
using namespace Base;
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
// Returns a string which represents the object e.g. when printed in Python
std::string MetadataPy::representation() const
diff --git a/src/Base/InputSource.cpp b/src/Base/InputSource.cpp
index 0c4039a..bf73486 100644
--- a/src/Base/InputSource.cpp
+++ b/src/Base/InputSource.cpp
@@ -35,8 +35,12 @@
#include "InputSource.h"
#include "XMLTools.h"
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
using namespace Base;
using namespace std;
diff --git a/src/Base/InputSource.h b/src/Base/InputSource.h
index 321b741..9969f6b 100644
--- a/src/Base/InputSource.h
+++ b/src/Base/InputSource.h
@@ -32,10 +32,18 @@
#include <FCGlobal.h>
#endif
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE
+{
+class BinInputStream;
+}
+#else
XERCES_CPP_NAMESPACE_BEGIN
class BinInputStream;
XERCES_CPP_NAMESPACE_END
+#endif
namespace Base
{
diff --git a/src/Base/Parameter.cpp b/src/Base/Parameter.cpp
index 93d45a9..5af8fb7 100644
--- a/src/Base/Parameter.cpp
+++ b/src/Base/Parameter.cpp
@@ -54,11 +54,12 @@
FC_LOG_LEVEL_INIT("Parameter", true, true)
-//#ifdef XERCES_HAS_CPP_NAMESPACE
-// using namespace xercesc;
-//#endif
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
using namespace Base;
diff --git a/src/Base/Parameter.h b/src/Base/Parameter.h
index 72a2391..71f38a7 100644
--- a/src/Base/Parameter.h
+++ b/src/Base/Parameter.h
@@ -65,7 +65,18 @@ using PyObject = struct _object;
# pragma warning( disable : 4275 )
#endif
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE
+{
+class DOMNode;
+class DOMElement;
+class DOMDocument;
+class XMLFormatTarget;
+class InputSource;
+} // namespace XERCES_CPP_NAMESPACE
+#else
XERCES_CPP_NAMESPACE_BEGIN
class DOMNode;
class DOMElement;
@@ -73,6 +84,7 @@ class DOMDocument;
class XMLFormatTarget;
class InputSource;
XERCES_CPP_NAMESPACE_END
+#endif
class ParameterManager;
diff --git a/src/Base/Reader.cpp b/src/Base/Reader.cpp
index 3231d26..8d5f889 100644
--- a/src/Base/Reader.cpp
+++ b/src/Base/Reader.cpp
@@ -45,8 +45,12 @@
#include <zipios++/zipinputstream.h>
#include <boost/iostreams/filtering_stream.hpp>
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
using namespace std;
diff --git a/src/Base/Reader.h b/src/Base/Reader.h
index aa66f53..be6943e 100644
--- a/src/Base/Reader.h
+++ b/src/Base/Reader.h
@@ -41,11 +41,20 @@
namespace zipios {
class ZipInputStream;
}
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE
+{
+class DefaultHandler;
+class SAX2XMLReader;
+} // namespace XERCES_CPP_NAMESPACE
+#else
XERCES_CPP_NAMESPACE_BEGIN
class DefaultHandler;
class SAX2XMLReader;
XERCES_CPP_NAMESPACE_END
+#endif
namespace Base
{
diff --git a/src/Base/XMLTools.cpp b/src/Base/XMLTools.cpp
index 84b5a8e..7fe8d14 100644
--- a/src/Base/XMLTools.cpp
+++ b/src/Base/XMLTools.cpp
@@ -26,15 +26,21 @@
#include "XMLTools.h"
using namespace Base;
+
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
+XERCES_CPP_NAMESPACE_USE
+#endif
-std::unique_ptr<XERCES_CPP_NAMESPACE::XMLTranscoder> XMLTools::transcoder;
+std::unique_ptr<XMLTranscoder> XMLTools::transcoder;
void XMLTools::initialize()
{
- XERCES_CPP_NAMESPACE_USE;
if (!transcoder.get()) {
XMLTransService::Codes res;
- transcoder.reset(XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgTransService->makeNewTranscoderFor(XERCES_CPP_NAMESPACE_QUALIFIER XMLRecognizer::UTF_8, res, 4096, XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager));
+ transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor(XMLRecognizer::UTF_8, res, 4096, XMLPlatformUtils::fgMemoryManager));
if (res != XMLTransService::Ok)
throw Base::UnicodeError("Can\'t create transcoder");
}
@@ -44,7 +50,6 @@ std::string XMLTools::toStdString(const XMLCh* const toTranscode)
{
std::string str;
- XERCES_CPP_NAMESPACE_USE;
initialize();
//char outBuff[128];
@@ -75,7 +80,6 @@ std::basic_string<XMLCh> XMLTools::toXMLString(const char* const fromTranscode)
if (!fromTranscode)
return str;
- XERCES_CPP_NAMESPACE_USE;
initialize();
static XMLCh outBuff[128];
diff --git a/src/Base/XMLTools.h b/src/Base/XMLTools.h
index d0dc66c..1a0e083 100644
--- a/src/Base/XMLTools.h
+++ b/src/Base/XMLTools.h
@@ -31,12 +31,22 @@
#include <Base/Exception.h>
-
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE
+{
+class DOMNode;
+class DOMElement;
+class DOMDocument;
+} // namespace XERCES_CPP_NAMESPACE
+#else
XERCES_CPP_NAMESPACE_BEGIN
class DOMNode;
class DOMElement;
class DOMDocument;
XERCES_CPP_NAMESPACE_END
+#endif
// Helper class
class BaseExport XMLTools
diff --git a/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp b/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp
index 5dbe53d..a7e7742 100644
--- a/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp
+++ b/src/Mod/Mesh/App/Core/IO/Reader3MF.cpp
@@ -41,7 +41,12 @@
using namespace MeshCore;
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+#else
XERCES_CPP_NAMESPACE_USE
+#endif
Reader3MF::Reader3MF(std::istream &str)
{
diff --git a/src/Mod/Mesh/App/Core/IO/Reader3MF.h b/src/Mod/Mesh/App/Core/IO/Reader3MF.h
index 439e70d..7f54495 100644
--- a/src/Mod/Mesh/App/Core/IO/Reader3MF.h
+++ b/src/Mod/Mesh/App/Core/IO/Reader3MF.h
@@ -31,10 +31,20 @@
#include <Mod/Mesh/App/Core/MeshKernel.h>
#include <Mod/Mesh/MeshGlobal.h>
+#ifndef XERCES_CPP_NAMESPACE_BEGIN
+#define XERCES_CPP_NAMESPACE_QUALIFIER
+using namespace XERCES_CPP_NAMESPACE;
+namespace XERCES_CPP_NAMESPACE
+{
+class DOMDocument;
+class DOMNodeList;
+} // namespace XERCES_CPP_NAMESPACE
+#else
XERCES_CPP_NAMESPACE_BEGIN
class DOMDocument;
class DOMNodeList;
XERCES_CPP_NAMESPACE_END
+#endif
namespace MeshCore
{
diff --git a/tests/src/App/Metadata.cpp b/tests/src/App/Metadata.cpp
index fa045cc..b91e4ad 100644
--- a/tests/src/App/Metadata.cpp
+++ b/tests/src/App/Metadata.cpp
@@ -24,6 +24,7 @@
#include "gtest/gtest.h"
#include "App/Metadata.h"
+#include <xercesc/util/PlatformUtils.hpp>
// NOLINTBEGIN(readability-named-parameter)
@@ -192,11 +193,11 @@ class MetadataTest: public ::testing::Test
protected:
void SetUp() override
{
- xercesc_3_2::XMLPlatformUtils::Initialize();
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Initialize();
}
void TearDown() override
{
- xercesc_3_2::XMLPlatformUtils::Terminate();
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Terminate();
}
std::string GivenSimpleMetadataXMLString()
{
diff --git a/tests/src/Base/Reader.cpp b/tests/src/Base/Reader.cpp
index 64fbc92..2329a05 100644
--- a/tests/src/Base/Reader.cpp
+++ b/tests/src/Base/Reader.cpp
@@ -8,6 +8,7 @@
#include <filesystem>
#include <fmt/format.h>
#include <fstream>
+#include <xercesc/util/PlatformUtils.hpp>
namespace fs = std::filesystem;
@@ -16,7 +17,7 @@ class ReaderTest: public ::testing::Test
protected:
void SetUp() override
{
- xercesc_3_2::XMLPlatformUtils::Initialize();
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Initialize();
_tempDir = fs::temp_directory_path();
std::string filename = "unit_test_Reader.xml";
_tempFile = _tempDir / filename;