From 7f9680bd69e48895d420bf0a1bf082e671f1aacb Mon Sep 17 00:00:00 2001 From: Kyle Smith Date: Mon, 1 Jun 2020 20:35:44 +1000 Subject: [PATCH] dcparser: The dcparser now compiles outside of panda Closes #945 --- direct/src/dcparser/dcClass.cxx | 2 ++ direct/src/dcparser/dcClass.h | 5 +++-- direct/src/dcparser/dcLexer.cxx.prebuilt | 3 +++ direct/src/dcparser/dcLexer.lxx | 4 +++- direct/src/dcparser/dcbase.h | 2 ++ 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/direct/src/dcparser/dcClass.cxx b/direct/src/dcparser/dcClass.cxx index e6a5fce230..80c8b58ed7 100644 --- a/direct/src/dcparser/dcClass.cxx +++ b/direct/src/dcparser/dcClass.cxx @@ -77,7 +77,9 @@ DCClass(DCFile *dc_file, const string &name, bool is_struct, bool bogus_class) : _number = -1; _constructor = nullptr; +#ifdef WITHIN_PANDA _python_class_defs = nullptr; +#endif } /** diff --git a/direct/src/dcparser/dcClass.h b/direct/src/dcparser/dcClass.h index 2dcc6bc560..d637529fba 100644 --- a/direct/src/dcparser/dcClass.h +++ b/direct/src/dcparser/dcClass.h @@ -172,6 +172,9 @@ private: typedef pmap FieldsByIndex; FieldsByIndex _fields_by_index; + friend class DCField; + +#ifdef WITHIN_PANDA // See pandaNode.h for an explanation of this trick class PythonClassDefs : public ReferenceCount { public: @@ -179,8 +182,6 @@ private: }; PT(PythonClassDefs) _python_class_defs; - friend class DCField; -#ifdef WITHIN_PANDA friend class Extension; #endif }; diff --git a/direct/src/dcparser/dcLexer.cxx.prebuilt b/direct/src/dcparser/dcLexer.cxx.prebuilt index fece97f2ae..69805f8c42 100644 --- a/direct/src/dcparser/dcLexer.cxx.prebuilt +++ b/direct/src/dcparser/dcLexer.cxx.prebuilt @@ -599,7 +599,10 @@ char *dcyytext; #include "dcParser.h" #include "dcFile.h" #include "dcindent.h" + +#ifdef WITHIN_PANDA #include "pstrtod.h" +#endif static int yyinput(void); // declared by flex. diff --git a/direct/src/dcparser/dcLexer.lxx b/direct/src/dcparser/dcLexer.lxx index 3a8156a4f3..b1e70d97da 100644 --- a/direct/src/dcparser/dcLexer.lxx +++ b/direct/src/dcparser/dcLexer.lxx @@ -11,8 +11,10 @@ #include "dcParser.h" #include "dcFile.h" #include "dcindent.h" -#include "pstrtod.h" +#ifdef WITHIN_PANDA +#include "pstrtod.h" +#endif static int yyinput(void); // declared by flex. extern "C" int dcyywrap(); diff --git a/direct/src/dcparser/dcbase.h b/direct/src/dcparser/dcbase.h index 75ddca8030..00559a83b9 100644 --- a/direct/src/dcparser/dcbase.h +++ b/direct/src/dcparser/dcbase.h @@ -70,6 +70,7 @@ #define BEGIN_PUBLISH #define END_PUBLISH #define BLOCKING +#define EXTENSION(x) // These control the declspec(dllexport/dllimport) on Windows. When compiling // outside of Panda, we assume we aren't part of a DLL. @@ -100,6 +101,7 @@ typedef std::string Filename; #define pmap std::map #define pset std::set #define vector_uchar std::vector +#define patof(x) atof(x) #include #include