Преглед изворни кода

support _d.dll in debug build

David Rose пре 16 година
родитељ
комит
e74c4a0c8f
2 измењених фајлова са 21 додато и 0 уклоњено
  1. 17 0
      direct/src/p3d/Packager.py
  2. 4 0
      direct/src/plugin/p3dSession.cxx

+ 17 - 0
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

+ 4 - 0
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) {