Changes to allow compiling Panda with MSVC 2015

This commit is contained in:
rdb 2016-04-19 15:43:02 +02:00
parent 32b4273c94
commit 32bc7cd819
4 changed files with 36 additions and 10 deletions

View File

@ -561,6 +561,10 @@ if (COMPILER == "MSVC"):
LibName(pkg, 'dxerrVNUM.lib'.replace("VNUM", vnum))
#LibName(pkg, 'ddraw.lib')
LibName(pkg, 'dxguid.lib')
if not PkgSkip("FREETYPE") and os.path.isdir(GetThirdpartyDir() + "freetype/include/freetype2"):
IncDirectory("FREETYPE", GetThirdpartyDir() + "freetype/include/freetype2")
IncDirectory("ALWAYS", GetThirdpartyDir() + "extras/include")
LibName("WINSOCK", "wsock32.lib")
LibName("WINSOCK2", "wsock32.lib")
@ -587,7 +591,14 @@ if (COMPILER == "MSVC"):
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "quartz.lib")
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbc32.lib")
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbccp32.lib")
if (PkgSkip("PNG")==0): LibName("PNG", GetThirdpartyDir() + "png/lib/libpng_static.lib")
if (PkgSkip("OPENSSL")==0):
LibName("OPENSSL", GetThirdpartyDir() + "openssl/lib/libpandassl.lib")
LibName("OPENSSL", GetThirdpartyDir() + "openssl/lib/libpandaeay.lib")
if (PkgSkip("PNG")==0):
if os.path.isfile(GetThirdpartyDir() + "png/lib/libpng16_static.lib"):
LibName("PNG", GetThirdpartyDir() + "png/lib/libpng16_static.lib")
else:
LibName("PNG", GetThirdpartyDir() + "png/lib/libpng_static.lib")
if (PkgSkip("JPEG")==0): LibName("JPEG", GetThirdpartyDir() + "jpeg/lib/jpeg-static.lib")
if (PkgSkip("TIFF")==0): LibName("TIFF", GetThirdpartyDir() + "tiff/lib/libtiff.lib")
if (PkgSkip("ZLIB")==0): LibName("ZLIB", GetThirdpartyDir() + "zlib/lib/zlibstatic.lib")
@ -596,8 +607,6 @@ if (COMPILER == "MSVC"):
if (PkgSkip("NVIDIACG")==0): LibName("CGGL", GetThirdpartyDir() + "nvidiacg/lib/cgGL.lib")
if (PkgSkip("NVIDIACG")==0): LibName("CGDX9", GetThirdpartyDir() + "nvidiacg/lib/cgD3D9.lib")
if (PkgSkip("NVIDIACG")==0): LibName("NVIDIACG", GetThirdpartyDir() + "nvidiacg/lib/cg.lib")
if (PkgSkip("OPENSSL")==0): LibName("OPENSSL", GetThirdpartyDir() + "openssl/lib/libpandassl.lib")
if (PkgSkip("OPENSSL")==0): LibName("OPENSSL", GetThirdpartyDir() + "openssl/lib/libpandaeay.lib")
if (PkgSkip("FREETYPE")==0): LibName("FREETYPE", GetThirdpartyDir() + "freetype/lib/freetype.lib")
if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/rfftw.lib")
if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/fftw.lib")
@ -703,7 +712,7 @@ if (COMPILER == "MSVC"):
IncDirectory("SPEEDTREE", SDK["SPEEDTREE"] + "/Include")
if (PkgSkip("BULLET")==0):
suffix = '.lib'
if GetTargetArch() == 'x64':
if GetTargetArch() == 'x64' and os.path.isfile(GetThirdpartyDir() + "bullet/lib/BulletCollision_x64.lib"):
suffix = '_x64.lib'
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/LinearMath" + suffix)
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/BulletCollision" + suffix)

View File

@ -1122,12 +1122,12 @@ def GetThirdpartyDir():
target_arch = GetTargetArch()
if (target == 'windows'):
vc = SDK["VISUALSTUDIO_VERSION"].split('.')[0]
if target_arch == 'x64':
THIRDPARTYDIR = base + "/win-libs-vc10-x64/"
if not os.path.isdir(THIRDPARTYDIR):
THIRDPARTYDIR = base + "/win-libs-vc10/"
THIRDPARTYDIR = base + "/win-libs-vc" + vc + "-x64/"
else:
THIRDPARTYDIR = base + "/win-libs-vc10/"
THIRDPARTYDIR = base + "/win-libs-vc" + vc + "/"
elif (target == 'darwin'):
# OSX thirdparty binaries are universal, where possible.
@ -2287,8 +2287,8 @@ def SetupVisualStudioEnviron():
AddToPathEnv("PATH", SDK["MSPLATFORM"] + "bin\\" + arch)
# Windows Kit 10 introduces the "universal CRT".
inc_dir = SDK["MSPLATFORM"] + "Include\\10.0.10240.0\\"
lib_dir = SDK["MSPLATFORM"] + "Lib\\10.0.10240.0\\"
inc_dir = SDK["MSPLATFORM"] + "Include\\10.0.10586.0\\"
lib_dir = SDK["MSPLATFORM"] + "Lib\\10.0.10586.0\\"
AddToPathEnv("INCLUDE", inc_dir + "shared")
AddToPathEnv("INCLUDE", inc_dir + "ucrt")
AddToPathEnv("INCLUDE", inc_dir + "um")

View File

@ -126,6 +126,10 @@ public:
INLINE ISocketStream(streambuf *buf);
virtual ~ISocketStream();
#if _MSC_VER >= 1800
INLINE ISocketStream(const ISocketStream &copy) = delete;
#endif
PUBLISHED:
enum ReadState {
RS_initial,
@ -155,6 +159,10 @@ class EXPCL_PANDAEXPRESS OSocketStream : public ostream, public SSWriter {
public:
INLINE OSocketStream(streambuf *buf);
#if _MSC_VER >= 1800
INLINE OSocketStream(const OSocketStream &copy) = delete;
#endif
PUBLISHED:
virtual bool is_closed() = 0;
virtual void close() = 0;
@ -170,6 +178,10 @@ class EXPCL_PANDAEXPRESS SocketStream : public iostream, public SSReader, public
public:
INLINE SocketStream(streambuf *buf);
#if _MSC_VER >= 1800
INLINE SocketStream(const SocketStream &copy) = delete;
#endif
PUBLISHED:
virtual bool is_closed() = 0;
virtual void close() = 0;

View File

@ -265,3 +265,8 @@ init_libdxgsg9() {
PandaSystem *ps = PandaSystem::get_global_ptr();
ps->add_system("DirectX9");
}
// Necessary to allow use of dxerr from MSVC 2015
#if _MSC_VER >= 1900
int (WINAPIV * __vsnprintf)(char *, size_t, const char*, va_list) = _vsnprintf;
#endif