Browse Source

Fix various link issues on Windows when building rtdist

rdb 10 years ago
parent
commit
62217c652e

+ 4 - 2
direct/src/plugin/p3dPythonRun.cxx

@@ -21,8 +21,10 @@
 
 #include "py_panda.h"
 
-// This has been compiled-in by the build system, if all is well.
-extern struct _frozen _PyImport_FrozenModules[];
+extern "C" {
+  // This has been compiled-in by the build system, if all is well.
+  extern struct _frozen _PyImport_FrozenModules[];
+};
 
 // There is only one P3DPythonRun object in any given process space.
 // Makes the statics easier to deal with, and we don't need multiple

+ 1 - 0
direct/src/stdpy/file.py

@@ -14,6 +14,7 @@ import panda3d._core as core
 import sys
 import os
 import io
+import encodings
 
 _vfs = core.VirtualFileSystem.getGlobalPtr()
 

+ 2 - 0
makepanda/makepanda.py

@@ -5061,6 +5061,7 @@ if (RTDIST or RUNTIME):
     TargetAdd('p3dpython.exe', opts=['PYTHON', 'WINUSER'])
 
     TargetAdd('libp3dpython.dll', input='p3dpython_p3dpython_composite1.obj')
+    TargetAdd('libp3dpython.dll', input='p3dpython_frozen.obj')
     TargetAdd('libp3dpython.dll', input=COMMON_PANDA_LIBS)
     TargetAdd('libp3dpython.dll', input='libp3tinyxml.ilb')
     TargetAdd('libp3dpython.dll', input='libp3interrogatedb.dll')
@@ -5073,6 +5074,7 @@ if (RTDIST or RUNTIME):
       TargetAdd('p3dpythonw_p3dPythonMain.obj', opts=OPTS, input='p3dPythonMain.cxx')
       TargetAdd('p3dpythonw.exe', input='p3dpythonw_p3dpython_composite1.obj')
       TargetAdd('p3dpythonw.exe', input='p3dpythonw_p3dPythonMain.obj')
+      TargetAdd('p3dpythonw.exe', input='p3dpython_frozen.obj')
       TargetAdd('p3dpythonw.exe', input=COMMON_PANDA_LIBS)
       TargetAdd('p3dpythonw.exe', input='libp3tinyxml.ilb')
       TargetAdd('p3dpythonw.exe', input='libp3interrogatedb.dll')

+ 2 - 2
panda/src/downloader/stringStream.I

@@ -63,7 +63,7 @@ get_data_size() {
 INLINE string StringStream::
 get_data() {
   flush();
-  const pvector<unsigned char> &data = _buf.get_data();
+  const vector_uchar &data = _buf.get_data();
   if (!data.empty()) {
     return string((char *)&data[0], data.size());
   }
@@ -91,7 +91,7 @@ set_data(const string &data) {
 //               internal buffer.
 ////////////////////////////////////////////////////////////////////
 INLINE void StringStream::
-swap_data(pvector<unsigned char> &data) {
+swap_data(vector_uchar &data) {
   flush();
   _buf.swap_data(data);
 }

+ 1 - 1
panda/src/downloader/stringStream.cxx

@@ -23,7 +23,7 @@
 void StringStream::
 set_data(const unsigned char *data, size_t size) {
   _buf.clear();
-  pvector<unsigned char> pv;
+  vector_uchar pv;
   pv.insert(pv.end(), data, data + size);
   _buf.swap_data(pv);
 }

+ 2 - 1
panda/src/downloader/stringStream.h

@@ -17,6 +17,7 @@
 
 #include "pandabase.h"
 #include "stringStreamBuf.h"
+#include "vector_uchar.h"
 #include "extension.h"
 
 ////////////////////////////////////////////////////////////////////
@@ -49,7 +50,7 @@ public:
   void set_data(const unsigned char *data, size_t size);
 #endif
 
-  INLINE void swap_data(pvector<unsigned char> &data);
+  INLINE void swap_data(vector_uchar &data);
 
 private:
   StringStreamBuf _buf;

+ 2 - 2
panda/src/downloader/stringStreamBuf.I

@@ -21,7 +21,7 @@
 //               or the iostream buffer.
 ////////////////////////////////////////////////////////////////////
 INLINE void StringStreamBuf::
-swap_data(pvector<unsigned char> &data) {
+swap_data(vector_uchar &data) {
   _data.swap(data);
 }
 
@@ -31,7 +31,7 @@ swap_data(pvector<unsigned char> &data) {
 //  Description: Returns a reference to the contents of the internal
 //               buffer, without any of the iostream buffer.
 ////////////////////////////////////////////////////////////////////
-INLINE const pvector<unsigned char> &StringStreamBuf::
+INLINE const vector_uchar &StringStreamBuf::
 get_data() const {
   return _data;
 }

+ 4 - 4
panda/src/downloader/stringStreamBuf.h

@@ -16,7 +16,7 @@
 #define STRINGSTREAMBUF_H
 
 #include "pandabase.h"
-#include "pvector.h"
+#include "vector_uchar.h"
 
 ////////////////////////////////////////////////////////////////////
 //       Class : StringStreamBuf
@@ -32,8 +32,8 @@ public:
 
   void clear();
 
-  INLINE void swap_data(pvector<unsigned char> &data);
-  INLINE const pvector<unsigned char> &get_data() const;
+  INLINE void swap_data(vector_uchar &data);
+  INLINE const vector_uchar &get_data() const;
 
   size_t read_chars(char *start, size_t length);
   void write_chars(const char *start, size_t length);
@@ -47,7 +47,7 @@ protected:
   virtual int underflow();
 
 private:
-  pvector<unsigned char> _data;
+  vector_uchar _data;
   char *_buffer;
   size_t _ppos;
   size_t _gpos;

+ 1 - 1
panda/src/downloader/stringStream_ext.cxx

@@ -34,7 +34,7 @@ __init__(PyObject *source) {
 PyObject *Extension<StringStream>::
 get_data() {
   _this->flush();
-  const pvector<unsigned char> &data = _this->_buf.get_data();
+  const vector_uchar &data = _this->_buf.get_data();
   if (!data.empty()) {
 #if PY_MAJOR_VERSION >= 3
     return PyBytes_FromStringAndSize((char *)&data[0], data.size());

+ 0 - 1
panda/src/express/streamReader_ext.h

@@ -35,7 +35,6 @@ public:
   BLOCKING PyObject *extract_bytes(size_t size);
   BLOCKING PyObject *readline();
   BLOCKING PyObject *readlines();
-  BLOCKING PyObject *get_data() const;
 };
 
 #endif  // HAVE_PYTHON