From e74c4a0c8fc855fd7e3009370eea5f9b63ac706b Mon Sep 17 00:00:00 2001 From: David Rose Date: Mon, 31 Aug 2009 22:33:24 +0000 Subject: [PATCH] support _d.dll in debug build --- direct/src/p3d/Packager.py | 17 +++++++++++++++++ direct/src/plugin/p3dSession.cxx | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/direct/src/p3d/Packager.py b/direct/src/p3d/Packager.py index f85f4b813d..332a78e6d7 100644 --- a/direct/src/p3d/Packager.py +++ b/direct/src/p3d/Packager.py @@ -2337,6 +2337,23 @@ class Packager: if not thisFiles: thisFiles = [filename.toOsSpecific()] + if newExt == 'dll' or (ext == 'dll' and newExt is None): + # Go through the dsoFilename interface on Windows, + # to insert a _d if we are running on a debug + # build. + dllFilename = Filename(filename) + dllFilename.setExtension('so') + dllFilename = Filename.dsoFilename(dllFilename.cStr()) + if dllFilename != filename: + thisFiles = glob.glob(filename.toOsSpecific()) + if not thisFiles: + # We have to resolve this filename to + # determine if it's a _d or not. + if dllFilename.resolveFilename(self.executablePath): + thisFiles = [dllFilename.toOsSpecific()] + else: + thisFiles = [filename.toOsSpecific()] + if len(thisFiles) > 1: explicit = False files += thisFiles diff --git a/direct/src/plugin/p3dSession.cxx b/direct/src/plugin/p3dSession.cxx index ea39ea025f..5903c3dc09 100644 --- a/direct/src/plugin/p3dSession.cxx +++ b/direct/src/plugin/p3dSession.cxx @@ -1351,7 +1351,11 @@ p3dpython_thread_run() { // Now load the library. string libp3dpython = _python_root_dir + "/libp3dpython"; #ifdef _WIN32 +#ifdef _DEBUG + libp3dpython += "_d.dll"; +#else libp3dpython += ".dll"; +#endif SetErrorMode(0); HMODULE module = LoadLibrary(libp3dpython.c_str()); if (module == NULL) {