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, 'dxerrVNUM.lib'.replace("VNUM", vnum))
#LibName(pkg, 'ddraw.lib') #LibName(pkg, 'ddraw.lib')
LibName(pkg, 'dxguid.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") IncDirectory("ALWAYS", GetThirdpartyDir() + "extras/include")
LibName("WINSOCK", "wsock32.lib") LibName("WINSOCK", "wsock32.lib")
LibName("WINSOCK2", "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", "quartz.lib")
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbc32.lib") if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbc32.lib")
if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbccp32.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("JPEG")==0): LibName("JPEG", GetThirdpartyDir() + "jpeg/lib/jpeg-static.lib")
if (PkgSkip("TIFF")==0): LibName("TIFF", GetThirdpartyDir() + "tiff/lib/libtiff.lib") if (PkgSkip("TIFF")==0): LibName("TIFF", GetThirdpartyDir() + "tiff/lib/libtiff.lib")
if (PkgSkip("ZLIB")==0): LibName("ZLIB", GetThirdpartyDir() + "zlib/lib/zlibstatic.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("CGGL", GetThirdpartyDir() + "nvidiacg/lib/cgGL.lib")
if (PkgSkip("NVIDIACG")==0): LibName("CGDX9", GetThirdpartyDir() + "nvidiacg/lib/cgD3D9.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("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("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/rfftw.lib")
if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/fftw.lib") if (PkgSkip("FFTW")==0): LibName("FFTW", GetThirdpartyDir() + "fftw/lib/fftw.lib")
@ -703,7 +712,7 @@ if (COMPILER == "MSVC"):
IncDirectory("SPEEDTREE", SDK["SPEEDTREE"] + "/Include") IncDirectory("SPEEDTREE", SDK["SPEEDTREE"] + "/Include")
if (PkgSkip("BULLET")==0): if (PkgSkip("BULLET")==0):
suffix = '.lib' suffix = '.lib'
if GetTargetArch() == 'x64': if GetTargetArch() == 'x64' and os.path.isfile(GetThirdpartyDir() + "bullet/lib/BulletCollision_x64.lib"):
suffix = '_x64.lib' suffix = '_x64.lib'
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/LinearMath" + suffix) LibName("BULLET", GetThirdpartyDir() + "bullet/lib/LinearMath" + suffix)
LibName("BULLET", GetThirdpartyDir() + "bullet/lib/BulletCollision" + suffix) LibName("BULLET", GetThirdpartyDir() + "bullet/lib/BulletCollision" + suffix)

View File

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

View File

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

View File

@ -265,3 +265,8 @@ init_libdxgsg9() {
PandaSystem *ps = PandaSystem::get_global_ptr(); PandaSystem *ps = PandaSystem::get_global_ptr();
ps->add_system("DirectX9"); 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