Fix various link issues on Windows when building rtdist

This commit is contained in:
rdb 2015-09-20 01:37:49 +02:00
parent 1d9aff0c48
commit 62217c652e
10 changed files with 19 additions and 14 deletions

View File

@ -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

View File

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

View File

@ -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')

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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;

View File

@ -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());

View File

@ -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