#include "ps/Profile.h" fix: ../../../source/graphics/MapReader.cpp: In lambda function: ../../../source/graphics/MapReader.cpp:1351:25: error: ‘PROFILE2’ was not declared in this scope 1351 | PROFILE2("Map Generation"); | ^~~~~~~~ make[1]: *** [graphics.make:305: obj/graphics_Release/MapReader.o] Error 1 make: *** [Makefile:121: graphics] Error 2 make: *** Waiting for unfinished jobs.... #include fix: ../../../source/ps/Util.cpp: In function ‘std::string Hexify(const std::string&)’: ../../../source/ps/Util.cpp:110:29: error: ‘setfill’ is not a member of ‘std’ 110 | str << std::setfill('0') << std::setw(2) << static_cast(static_cast(c)); | ^~~~~~~ ../../../source/ps/Util.cpp:27:1: note: ‘std::setfill’ is defined in header ‘’; did you forget to ‘#include ’? 26 | #include "ps/Pyrogenesis.h" +++ |+#include 27 | ../../../source/ps/Util.cpp:110:50: error: ‘setw’ is not a member of ‘std’ 110 | str << std::setfill('0') << std::setw(2) << static_cast(static_cast(c)); | ^~~~ ../../../source/ps/Util.cpp:110:50: note: ‘std::setw’ is defined in header ‘’; did you forget to ‘#include ’? ../../../source/ps/Util.cpp: In function ‘std::string Hexify(const u8*, size_t)’: ../../../source/ps/Util.cpp:119:29: error: ‘setfill’ is not a member of ‘std’ 119 | str << std::setfill('0') << std::setw(2) << static_cast(s[i]); | ^~~~~~~ ../../../source/ps/Util.cpp:119:29: note: ‘std::setfill’ is defined in header ‘’; did you forget to ‘#include ’? ../../../source/ps/Util.cpp:119:50: error: ‘setw’ is not a member of ‘std’ 119 | str << std::setfill('0') << std::setw(2) << static_cast(s[i]); | ^~~~ ../../../source/ps/Util.cpp:119:50: note: ‘std::setw’ is defined in header ‘’; did you forget to ‘#include ’? make[1]: *** [engine.make:399: obj/engine_Release/Util.o] Error 1 make: *** [Makefile:115: engine] Error 2 make: *** Waiting for unfinished jobs.... ScriptTypes.h: In file included from ../../../source/ps/scripting/JSInterface_VFS.cpp:20: ../../../source/ps/scripting/JSInterface_VFS.h:26:35: error: ‘JSPROP_ENUMERATE’ was not declared in this scope 26 | const u16 flags = JSPROP_ENUMERATE | JSPROP_READONLY | JSPROP_PERMANENT); | ^~~~~~~~~~~~~~~~ ../../../source/ps/scripting/JSInterface_VFS.h:26:54: error: ‘JSPROP_READONLY’ was not declared in this scope 26 | const u16 flags = JSPROP_ENUMERATE | JSPROP_READONLY | JSPROP_PERMANENT); | ^~~~~~~~~~~~~~~ ../../../source/ps/scripting/JSInterface_VFS.h:26:72: error: ‘JSPROP_PERMANENT’ was not declared in this scope 26 | const u16 flags = JSPROP_ENUMERATE | JSPROP_READONLY | JSPROP_PERMANENT); | ^~~~~~~~~~~~~~~~ ../../../source/ps/scripting/JSInterface_VFS.h:28:35: error: ‘JSPROP_ENUMERATE’ was not declared in this scope 28 | const u16 flags = JSPROP_ENUMERATE | JSPROP_READONLY | JSPROP_PERMANENT); | ^~~~~~~~~~~~~~~~ ../../../source/ps/scripting/JSInterface_VFS.h:28:54: error: ‘JSPROP_READONLY’ was not declared in this scope 28 | const u16 flags = JSPROP_ENUMERATE | JSPROP_READONLY | JSPROP_PERMANENT); | ^~~~~~~~~~~~~~~ ../../../source/ps/scripting/JSInterface_VFS.h:28:72: error: ‘JSPROP_PERMANENT’ was not declared in this scope 28 | const u16 flags = JSPROP_ENUMERATE | JSPROP_READONLY | JSPROP_PERMANENT); | ^~~~~~~~~~~~~~~~ ../../../source/ps/scripting/JSInterface_VFS.h:30:35: error: ‘JSPROP_ENUMERATE’ was not declared in this scope 30 | const u16 flags = JSPROP_ENUMERATE | JSPROP_READONLY | JSPROP_PERMANENT); | ^~~~~~~~~~~~~~~~ ../../../source/ps/scripting/JSInterface_VFS.h:30:54: error: ‘JSPROP_READONLY’ was not declared in this scope 30 | const u16 flags = JSPROP_ENUMERATE | JSPROP_READONLY | JSPROP_PERMANENT); | ^~~~~~~~~~~~~~~ ../../../source/ps/scripting/JSInterface_VFS.h:30:72: error: ‘JSPROP_PERMANENT’ was not declared in this scope 30 | const u16 flags = JSPROP_ENUMERATE | JSPROP_READONLY | JSPROP_PERMANENT); | ^~~~~~~~~~~~~~~~ make[1]: *** [engine.make:456: obj/engine_Release/JSInterface_VFS.o] Error 1 make[1]: *** Waiting for unfinished jobs.... #include fix: In file included from ../../../source/ps/XML/RelaxNG.cpp:28: /usr/include/libxml2/libxml/relaxng.h:198:42: error: ‘xmlNodePtr’ has not been declared 198 | xmlNodePtr elem); | ^~~~~~~~~~ /usr/include/libxml2/libxml/relaxng.h:206:42: error: ‘xmlNodePtr’ has not been declared 206 | xmlNodePtr elem); | ^~~~~~~~~~ /usr/include/libxml2/libxml/relaxng.h:210:42: error: ‘xmlNodePtr’ has not been declared 210 | xmlNodePtr elem); | ^~~~~~~~~~ ../../../source/ps/XML/RelaxNG.cpp: In member function ‘bool RelaxNGValidator::ValidateEncoded(const std::string&, const std::string&) const’: ../../../source/ps/XML/RelaxNG.cpp:147:103: error: ‘XML_PARSE_NONET’ was not declared in this scope; did you mean ‘XML_FROM_NONE’? 147 | xmlDocPtr doc = xmlReadMemory(document.c_str(), (int)document.size(), filename.c_str(), NULL, XML_PARSE_NONET); | ^~~~~~~~~~~~~~~ | XML_FROM_NONE ../../../source/ps/XML/RelaxNG.cpp:147:25: error: ‘xmlReadMemory’ was not declared in this scope 147 | xmlDocPtr doc = xmlReadMemory(document.c_str(), (int)document.size(), filename.c_str(), NULL, XML_PARSE_NONET); | ^~~~~~~~~~~~~ ../../../source/ps/XML/RelaxNG.cpp:155:9: error: ‘xmlFreeDoc’ was not declared in this scope; did you mean ‘xmlDoc’? 155 | xmlFreeDoc(doc); | ^~~~~~~~~~ | xmlDoc In file included from ../../../source/ps/XML/RelaxNG.cpp:24: ../../../source/ps/XML/RelaxNG.cpp: In member function ‘bool RelaxNGValidator::ValidateEncoded(xmlDocPtr) const’: ../../../source/ps/XML/RelaxNG.cpp:172:77: error: invalid use of incomplete type ‘xmlDoc’ {aka ‘struct _xmlDoc’} 172 | LOGERROR("RelaxNGValidator: Validation failed for '%s'", doc->name); | ^~ ../../../source/ps/CLogger.h:36:67: note: in definition of macro ‘LOGERROR’ 36 | #define LOGERROR(...) g_Logger->WriteError (fmt::sprintf(__VA_ARGS__).c_str()) | ^~~~~~~~~~~ In file included from ../../../source/ps/XML/RelaxNG.cpp:20: ../../../source/ps/XML/RelaxNG.h:26:16: note: forward declaration of ‘xmlDoc’ {aka ‘struct _xmlDoc’} 26 | typedef struct _xmlDoc xmlDoc; | ^~~~~~~ make[1]: *** [engine.make:417: obj/engine_Release/RelaxNG.o] Error 1 make: *** [Makefile:115: engine] Error 2 -fpermissive fix (sorry I thought it was -pendantic): ../../../source/ps/XML/Xeromyces.cpp: In static member function ‘static void CXeromyces::Startup()’: ../../../source/ps/XML/Xeromyces.cpp:59:41: error: invalid conversion from ‘void (*)(void*, xmlErrorPtr)’ {aka ‘void (*)(void*, _xmlError*)’} to ‘xmlStructuredErrorFunc’ {aka ‘void (*)(void*, const _xmlError*)’} [-fpermissive] 59 | xmlSetStructuredErrorFunc(NULL, &errorHandler); | ^~~~~~~~~~~~~ | | | void (*)(void*, xmlErrorPtr) {aka void (*)(void*, _xmlError*)} In file included from /usr/include/libxml2/libxml/valid.h:15, from /usr/include/libxml2/libxml/parser.h:17, from ../../../source/ps/XML/Xeromyces.cpp:35: /usr/include/libxml2/libxml/xmlerror.h:898:57: note: initializing argument 2 of ‘void xmlSetStructuredErrorFunc(void*, xmlStructuredErrorFunc)’ 898 | xmlStructuredErrorFunc handler); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~ make[1]: *** [engine.make:423: obj/engine_Release/Xeromyces.o] Error 1 make[1]: *** Waiting for unfinished jobs.... ../../../source/ps/XML/RelaxNG.cpp: In member function ‘bool RelaxNGValidator::ValidateEncoded(xmlDocPtr) const’: ../../../source/ps/XML/RelaxNG.cpp:163:50: error: invalid conversion from ‘void (*)(void*, xmlErrorPtr)’ {aka ‘void (*)(void*, _xmlError*)’} to ‘xmlStructuredErrorFunc’ {aka ‘void (*)(void*, const _xmlError*)’} [-fpermissive] 163 | xmlRelaxNGSetValidStructuredErrors(ctxt, &relaxNGErrorHandler, NULL); | ^~~~~~~~~~~~~~~~~~~~ | | | void (*)(void*, xmlErrorPtr) {aka void (*)(void*, _xmlError*)} In file included from ../../../source/ps/XML/RelaxNG.cpp:29: /usr/include/libxml2/libxml/relaxng.h:184:66: note: initializing argument 2 of ‘void xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr, xmlStructuredErrorFunc, void*)’ 184 | xmlStructuredErrorFunc serror, void *ctx); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ make[1]: *** [engine.make:417: obj/engine_Release/RelaxNG.o] Error 1 make: *** [Makefile:115: engine] Error 2