From fe368edbb3124ba46a9832931bfa72ee41e53541 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 26 Dec 2024 23:03:39 +0100 Subject: [PATCH] Fix: Cycles lite build failure without Pugixml --- CMakeLists.txt | 7 ++++--- intern/cycles/CMakeLists.txt | 7 +++++-- intern/cycles/graph/node_xml.cpp | 13 +++++++++---- intern/cycles/graph/node_xml.h | 12 ++++++++---- intern/cycles/util/xml.h | 21 ++++++++++----------- 5 files changed, 36 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dd5c4c4eb30..4f22b8b4826 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1277,9 +1277,10 @@ set_and_warn_dependency(WITH_BOOST WITH_OPENVDB OFF) set_and_warn_dependency(WITH_BOOST WITH_QUADRIFLOW OFF) set_and_warn_dependency(WITH_BOOST WITH_USD OFF) if(WITH_CYCLES) - set_and_warn_dependency(WITH_BOOST WITH_CYCLES_OSL OFF) - set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF) - set_and_warn_dependency(WITH_CYCLES_OSL WITH_CYCLES_TEST_OSL OFF) + set_and_warn_dependency(WITH_BOOST WITH_CYCLES_OSL OFF) + set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF) + set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_STANDALONE OFF) + set_and_warn_dependency(WITH_CYCLES_OSL WITH_CYCLES_TEST_OSL OFF) endif() set_and_warn_dependency(WITH_TBB WITH_CYCLES OFF) diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index 8de33d7ee10..49b9b5bf888 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -386,8 +386,11 @@ if(WITH_CYCLES_DEBUG_NAN) add_definitions(-DWITH_CYCLES_DEBUG_NAN) endif() -if((NOT OPENIMAGEIO_PUGIXML_FOUND) OR WIN32) - add_definitions(-DWITH_SYSTEM_PUGIXML) +if(WITH_PUGIXML OR OPENIMAGEIO_PUGIXML_FOUND) + add_definitions(-DWITH_PUGIXML) + if((NOT OPENIMAGEIO_PUGIXML_FOUND) OR WIN32) + add_definitions(-DWITH_SYSTEM_PUGIXML) + endif() endif() if(CYCLES_STANDALONE_REPOSITORY) diff --git a/intern/cycles/graph/node_xml.cpp b/intern/cycles/graph/node_xml.cpp index 85f8e35e86f..746672cd725 100644 --- a/intern/cycles/graph/node_xml.cpp +++ b/intern/cycles/graph/node_xml.cpp @@ -2,11 +2,14 @@ * * SPDX-License-Identifier: Apache-2.0 */ -#include "graph/node_xml.h" +#ifdef WITH_PUGIXML -#include "util/foreach.h" -#include "util/string.h" -#include "util/transform.h" +# include "graph/node_xml.h" +# include "graph/node.h" + +# include "util/foreach.h" +# include "util/string.h" +# include "util/transform.h" CCL_NAMESPACE_BEGIN @@ -433,3 +436,5 @@ xml_node xml_write_node(Node *node, xml_node xml_root) } CCL_NAMESPACE_END + +#endif /* WITH_PUGIXML */ diff --git a/intern/cycles/graph/node_xml.h b/intern/cycles/graph/node_xml.h index 56dd200dfca..cebb736f5e5 100644 --- a/intern/cycles/graph/node_xml.h +++ b/intern/cycles/graph/node_xml.h @@ -4,14 +4,16 @@ #pragma once -#include "graph/node.h" +#ifdef WITH_PUGIXML -#include "util/map.h" -#include "util/string.h" -#include "util/xml.h" +# include "util/map.h" +# include "util/param.h" +# include "util/xml.h" CCL_NAMESPACE_BEGIN +struct Node; + struct XMLReader { map node_map; }; @@ -20,3 +22,5 @@ void xml_read_node(XMLReader &reader, Node *node, xml_node xml_node); xml_node xml_write_node(Node *node, xml_node xml_root); CCL_NAMESPACE_END + +#endif /* WITH_PUGIXML */ diff --git a/intern/cycles/util/xml.h b/intern/cycles/util/xml.h index 7061a577162..5c08ab5e8af 100644 --- a/intern/cycles/util/xml.h +++ b/intern/cycles/util/xml.h @@ -2,22 +2,21 @@ * * SPDX-License-Identifier: Apache-2.0 */ -#ifndef __UTIL_XML_H__ -#define __UTIL_XML_H__ +#pragma once + +#ifdef WITH_PUGIXML /* PugiXML is used for XML parsing. */ -#include +# include CCL_NAMESPACE_BEGIN -OIIO_NAMESPACE_USING - -#ifdef WITH_SYSTEM_PUGIXML -# define PUGIXML_NAMESPACE pugi -#else -# define PUGIXML_NAMESPACE OIIO_NAMESPACE::pugi -#endif +# ifdef WITH_SYSTEM_PUGIXML +# define PUGIXML_NAMESPACE pugi +# else +# define PUGIXML_NAMESPACE OIIO_NAMESPACE::pugi +# endif using PUGIXML_NAMESPACE::xml_attribute; using PUGIXML_NAMESPACE::xml_document; @@ -26,4 +25,4 @@ using PUGIXML_NAMESPACE::xml_parse_result; CCL_NAMESPACE_END -#endif /* __UTIL_XML_H__ */ +#endif