Browse Source

pandabase: Introduce BUILDING_ defines for each component

This reverses the relationship between EXPCL_PANDA_COMPONENT
and BUILDING_PANDA, where BUILDING_PANDA is just shorthand for
BUILDING_PANDA_COMPONENT and BUILDING_PANDA_COMPONENT itself
sets the EXPCL_PANDA_COMPONENT defines.

Also removes EXPCL_PANDA.
Sam Edwards 7 years ago
parent
commit
98797d0090
1 changed files with 288 additions and 101 deletions
  1. 288 101
      panda/src/pandabase/pandasymbols.h

+ 288 - 101
panda/src/pandabase/pandasymbols.h

@@ -69,12 +69,296 @@
   #define EXPTP_OPENAL_AUDIO IMPORT_TEMPL
 #endif
 
+/* BUILDING_PANDA is just a buildsystem shortcut for all of these: */
 #ifdef BUILDING_PANDA
-  #define EXPCL_PANDA EXPORT_CLASS
-  #define EXPTP_PANDA EXPORT_TEMPL
+  #define BUILDING_LIBPANDA
+  #define BUILDING_PANDA_AUDIO
+  #define BUILDING_PANDA_CHAN
+  #define BUILDING_PANDA_CHAR
+  #define BUILDING_PANDA_COLLIDE
+  #define BUILDING_PANDA_CULL
+  #define BUILDING_PANDA_DEVICE
+  #define BUILDING_PANDA_DGRAPH
+  #define BUILDING_PANDA_DISPLAY
+  #define BUILDING_PANDA_DXML
+  #define BUILDING_PANDA_EVENT
+  #define BUILDING_PANDA_GOBJ
+  #define BUILDING_PANDA_GRUTIL
+  #define BUILDING_PANDA_GSGBASE
+  #define BUILDING_PANDA_LINMATH
+  #define BUILDING_PANDA_MATHUTIL
+  #define BUILDING_PANDA_MOVIES
+  #define BUILDING_PANDA_NATIVENET
+  #define BUILDING_PANDA_NET
+  #define BUILDING_PANDA_PARAMETRICS
+  #define BUILDING_PANDA_PGRAPH
+  #define BUILDING_PANDA_PGRAPHNODES
+  #define BUILDING_PANDA_PGUI
+  #define BUILDING_PANDA_PIPELINE
+  #define BUILDING_PANDA_PNMIMAGE
+  #define BUILDING_PANDA_PNMIMAGETYPES
+  #define BUILDING_PANDA_PNMTEXT
+  #define BUILDING_PANDA_PSTATCLIENT
+  #define BUILDING_PANDA_PUTIL
+  #define BUILDING_PANDA_RECORDER
+  #define BUILDING_PANDA_TEXT
+  #define BUILDING_PANDA_TFORM
+#endif
+
+#ifdef BUILDING_LIBPANDA
+  #define EXPCL_LIBPANDA EXPORT_CLASS
+  #define EXPTP_LIBPANDA EXPORT_TEMPL
+#else
+  #define EXPCL_LIBPANDA IMPORT_CLASS
+  #define EXPTP_LIBPANDA IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_AUDIO
+  #define EXPCL_PANDA_AUDIO EXPORT_CLASS
+  #define EXPTP_PANDA_AUDIO EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_AUDIO IMPORT_CLASS
+  #define EXPTP_PANDA_AUDIO IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_CHAN
+  #define EXPCL_PANDA_CHAN EXPORT_CLASS
+  #define EXPTP_PANDA_CHAN EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_CHAN IMPORT_CLASS
+  #define EXPTP_PANDA_CHAN IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_CHAR
+  #define EXPCL_PANDA_CHAR EXPORT_CLASS
+  #define EXPTP_PANDA_CHAR EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_CHAR IMPORT_CLASS
+  #define EXPTP_PANDA_CHAR IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_COLLIDE
+  #define EXPCL_PANDA_COLLIDE EXPORT_CLASS
+  #define EXPTP_PANDA_COLLIDE EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_COLLIDE IMPORT_CLASS
+  #define EXPTP_PANDA_COLLIDE IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_CULL
+  #define EXPCL_PANDA_CULL EXPORT_CLASS
+  #define EXPTP_PANDA_CULL EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_CULL IMPORT_CLASS
+  #define EXPTP_PANDA_CULL IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_DEVICE
+  #define EXPCL_PANDA_DEVICE EXPORT_CLASS
+  #define EXPTP_PANDA_DEVICE EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_DEVICE IMPORT_CLASS
+  #define EXPTP_PANDA_DEVICE IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_DGRAPH
+  #define EXPCL_PANDA_DGRAPH EXPORT_CLASS
+  #define EXPTP_PANDA_DGRAPH EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_DGRAPH IMPORT_CLASS
+  #define EXPTP_PANDA_DGRAPH IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_DISPLAY
+  #define EXPCL_PANDA_DISPLAY EXPORT_CLASS
+  #define EXPTP_PANDA_DISPLAY EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_DISPLAY IMPORT_CLASS
+  #define EXPTP_PANDA_DISPLAY IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_DXML
+  #define EXPCL_PANDA_DXML EXPORT_CLASS
+  #define EXPTP_PANDA_DXML EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_DXML IMPORT_CLASS
+  #define EXPTP_PANDA_DXML IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_EVENT
+  #define EXPCL_PANDA_EVENT EXPORT_CLASS
+  #define EXPTP_PANDA_EVENT EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_EVENT IMPORT_CLASS
+  #define EXPTP_PANDA_EVENT IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_GOBJ
+  #define EXPCL_PANDA_GOBJ EXPORT_CLASS
+  #define EXPTP_PANDA_GOBJ EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_GOBJ IMPORT_CLASS
+  #define EXPTP_PANDA_GOBJ IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_GRUTIL
+  #define EXPCL_PANDA_GRUTIL EXPORT_CLASS
+  #define EXPTP_PANDA_GRUTIL EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_GRUTIL IMPORT_CLASS
+  #define EXPTP_PANDA_GRUTIL IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_GSGBASE
+  #define EXPCL_PANDA_GSGBASE EXPORT_CLASS
+  #define EXPTP_PANDA_GSGBASE EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_GSGBASE IMPORT_CLASS
+  #define EXPTP_PANDA_GSGBASE IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_LINMATH
+  #define EXPCL_PANDA_LINMATH EXPORT_CLASS
+  #define EXPTP_PANDA_LINMATH EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_LINMATH IMPORT_CLASS
+  #define EXPTP_PANDA_LINMATH IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_MATHUTIL
+  #define EXPCL_PANDA_MATHUTIL EXPORT_CLASS
+  #define EXPTP_PANDA_MATHUTIL EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_MATHUTIL IMPORT_CLASS
+  #define EXPTP_PANDA_MATHUTIL IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_MOVIES
+  #define EXPCL_PANDA_MOVIES EXPORT_CLASS
+  #define EXPTP_PANDA_MOVIES EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_MOVIES IMPORT_CLASS
+  #define EXPTP_PANDA_MOVIES IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_NATIVENET
+  #define EXPCL_PANDA_NATIVENET EXPORT_CLASS
+  #define EXPTP_PANDA_NATIVENET EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_NATIVENET IMPORT_CLASS
+  #define EXPTP_PANDA_NATIVENET IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_NET
+  #define EXPCL_PANDA_NET EXPORT_CLASS
+  #define EXPTP_PANDA_NET EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_NET IMPORT_CLASS
+  #define EXPTP_PANDA_NET IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_PARAMETRICS
+  #define EXPCL_PANDA_PARAMETRICS EXPORT_CLASS
+  #define EXPTP_PANDA_PARAMETRICS EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_PARAMETRICS IMPORT_CLASS
+  #define EXPTP_PANDA_PARAMETRICS IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_PGRAPH
+  #define EXPCL_PANDA_PGRAPH EXPORT_CLASS
+  #define EXPTP_PANDA_PGRAPH EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_PGRAPH IMPORT_CLASS
+  #define EXPTP_PANDA_PGRAPH IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_PGRAPHNODES
+  #define EXPCL_PANDA_PGRAPHNODES EXPORT_CLASS
+  #define EXPTP_PANDA_PGRAPHNODES EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_PGRAPHNODES IMPORT_CLASS
+  #define EXPTP_PANDA_PGRAPHNODES IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_PGUI
+  #define EXPCL_PANDA_PGUI EXPORT_CLASS
+  #define EXPTP_PANDA_PGUI EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_PGUI IMPORT_CLASS
+  #define EXPTP_PANDA_PGUI IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_PIPELINE
+  #define EXPCL_PANDA_PIPELINE EXPORT_CLASS
+  #define EXPTP_PANDA_PIPELINE EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_PIPELINE IMPORT_CLASS
+  #define EXPTP_PANDA_PIPELINE IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_PNMIMAGE
+  #define EXPCL_PANDA_PNMIMAGE EXPORT_CLASS
+  #define EXPTP_PANDA_PNMIMAGE EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_PNMIMAGE IMPORT_CLASS
+  #define EXPTP_PANDA_PNMIMAGE IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_PNMIMAGETYPES
+  #define EXPCL_PANDA_PNMIMAGETYPES EXPORT_CLASS
+  #define EXPTP_PANDA_PNMIMAGETYPES EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_PNMIMAGETYPES IMPORT_CLASS
+  #define EXPTP_PANDA_PNMIMAGETYPES IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_PNMTEXT
+  #define EXPCL_PANDA_PNMTEXT EXPORT_CLASS
+  #define EXPTP_PANDA_PNMTEXT EXPORT_TEMPL
 #else
-  #define EXPCL_PANDA IMPORT_CLASS
-  #define EXPTP_PANDA IMPORT_TEMPL
+  #define EXPCL_PANDA_PNMTEXT IMPORT_CLASS
+  #define EXPTP_PANDA_PNMTEXT IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_PSTATCLIENT
+  #define EXPCL_PANDA_PSTATCLIENT EXPORT_CLASS
+  #define EXPTP_PANDA_PSTATCLIENT EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_PSTATCLIENT IMPORT_CLASS
+  #define EXPTP_PANDA_PSTATCLIENT IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_PUTIL
+  #define EXPCL_PANDA_PUTIL EXPORT_CLASS
+  #define EXPTP_PANDA_PUTIL EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_PUTIL IMPORT_CLASS
+  #define EXPTP_PANDA_PUTIL IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_RECORDER
+  #define EXPCL_PANDA_RECORDER EXPORT_CLASS
+  #define EXPTP_PANDA_RECORDER EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_RECORDER IMPORT_CLASS
+  #define EXPTP_PANDA_RECORDER IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_TEXT
+  #define EXPCL_PANDA_TEXT EXPORT_CLASS
+  #define EXPTP_PANDA_TEXT EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_TEXT IMPORT_CLASS
+  #define EXPTP_PANDA_TEXT IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_PANDA_TFORM
+  #define EXPCL_PANDA_TFORM EXPORT_CLASS
+  #define EXPTP_PANDA_TFORM EXPORT_TEMPL
+#else
+  #define EXPCL_PANDA_TFORM IMPORT_CLASS
+  #define EXPTP_PANDA_TFORM IMPORT_TEMPL
 #endif
 
 #ifdef BUILDING_PANDAAWESOMIUM
@@ -246,101 +530,4 @@
 #define INLINE_MATHUTIL INLINE
 #endif
 
-
-#define EXPCL_LIBPANDA EXPCL_PANDA
-#define EXPTP_LIBPANDA EXPTP_PANDA
-
-#define EXPCL_PANDA_AUDIO EXPCL_PANDA
-#define EXPTP_PANDA_AUDIO EXPTP_PANDA
-
-#define EXPCL_PANDA_CHAN EXPCL_PANDA
-#define EXPTP_PANDA_CHAN EXPTP_PANDA
-
-#define EXPCL_PANDA_CHAR EXPCL_PANDA
-#define EXPTP_PANDA_CHAR EXPTP_PANDA
-
-#define EXPCL_PANDA_COLLIDE EXPCL_PANDA
-#define EXPTP_PANDA_COLLIDE EXPTP_PANDA
-
-#define EXPCL_PANDA_CULL EXPCL_PANDA
-#define EXPTP_PANDA_CULL EXPTP_PANDA
-
-#define EXPCL_PANDA_DEVICE EXPCL_PANDA
-#define EXPTP_PANDA_DEVICE EXPTP_PANDA
-
-#define EXPCL_PANDA_DGRAPH EXPCL_PANDA
-#define EXPTP_PANDA_DGRAPH EXPTP_PANDA
-
-#define EXPCL_PANDA_DISPLAY EXPCL_PANDA
-#define EXPTP_PANDA_DISPLAY EXPTP_PANDA
-
-#define EXPCL_PANDA_DXML EXPCL_PANDA
-#define EXPTP_PANDA_DXML EXPTP_PANDA
-
-#define EXPCL_PANDA_EVENT EXPCL_PANDA
-#define EXPTP_PANDA_EVENT EXPTP_PANDA
-
-#define EXPCL_PANDA_GOBJ EXPCL_PANDA
-#define EXPTP_PANDA_GOBJ EXPTP_PANDA
-
-#define EXPCL_PANDA_GRUTIL EXPCL_PANDA
-#define EXPTP_PANDA_GRUTIL EXPTP_PANDA
-
-#define EXPCL_PANDA_GSGBASE EXPCL_PANDA
-#define EXPTP_PANDA_GSGBASE EXPTP_PANDA
-
-#define EXPCL_PANDA_LINMATH EXPCL_PANDA
-#define EXPTP_PANDA_LINMATH EXPTP_PANDA
-
-#define EXPCL_PANDA_MATHUTIL EXPCL_PANDA
-#define EXPTP_PANDA_MATHUTIL EXPTP_PANDA
-
-#define EXPCL_PANDA_MOVIES EXPCL_PANDA
-#define EXPTP_PANDA_MOVIES EXPTP_PANDA
-
-#define EXPCL_PANDA_NATIVENET EXPCL_PANDA
-#define EXPTP_PANDA_NATIVENET EXPTP_PANDA
-
-#define EXPCL_PANDA_NET EXPCL_PANDA
-#define EXPTP_PANDA_NET EXPTP_PANDA
-
-#define EXPCL_PANDA_PARAMETRICS EXPCL_PANDA
-#define EXPTP_PANDA_PARAMETRICS EXPTP_PANDA
-
-#define EXPCL_PANDA_PGRAPH EXPCL_PANDA
-#define EXPTP_PANDA_PGRAPH EXPTP_PANDA
-
-#define EXPCL_PANDA_PGRAPHNODES EXPCL_PANDA
-#define EXPTP_PANDA_PGRAPHNODES EXPTP_PANDA
-
-#define EXPCL_PANDA_PGUI EXPCL_PANDA
-#define EXPTP_PANDA_PGUI EXPTP_PANDA
-
-#define EXPCL_PANDA_PIPELINE EXPCL_PANDA
-#define EXPTP_PANDA_PIPELINE EXPTP_PANDA
-
-#define EXPCL_PANDA_PNMIMAGE EXPCL_PANDA
-#define EXPTP_PANDA_PNMIMAGE EXPTP_PANDA
-
-#define EXPCL_PANDA_PNMIMAGETYPES EXPCL_PANDA
-#define EXPTP_PANDA_PNMIMAGETYPES EXPTP_PANDA
-
-#define EXPCL_PANDA_PNMTEXT EXPCL_PANDA
-#define EXPTP_PANDA_PNMTEXT EXPTP_PANDA
-
-#define EXPCL_PANDA_PSTATCLIENT EXPCL_PANDA
-#define EXPTP_PANDA_PSTATCLIENT EXPTP_PANDA
-
-#define EXPCL_PANDA_PUTIL EXPCL_PANDA
-#define EXPTP_PANDA_PUTIL EXPTP_PANDA
-
-#define EXPCL_PANDA_RECORDER EXPCL_PANDA
-#define EXPTP_PANDA_RECORDER EXPTP_PANDA
-
-#define EXPCL_PANDA_TEXT EXPCL_PANDA
-#define EXPTP_PANDA_TEXT EXPTP_PANDA
-
-#define EXPCL_PANDA_TFORM EXPCL_PANDA
-#define EXPTP_PANDA_TFORM EXPTP_PANDA
-
 #endif