]> granicus.if.org Git - python/commitdiff
Rewrote 'find_library_file()' much more cleanly (and consistently with
authorGreg Ward <gward@python.net>
Fri, 4 Aug 2000 01:30:03 +0000 (01:30 +0000)
committerGreg Ward <gward@python.net>
Fri, 4 Aug 2000 01:30:03 +0000 (01:30 +0000)
MSVCCompiler's version, to aid in factoring common code out of the two
classes when the time comes).

Lib/distutils/bcppcompiler.py

index 7daa597b75fbd711c0a1447cc02a4dfede7eefee..1d897de61ae2cee0cc68c6e10edcf6885caf99d3 100644 (file)
@@ -357,28 +357,26 @@ class BCPPCompiler(CCompiler) :
 
 
     def find_library_file (self, dirs, lib, debug=0):
-        # find library file
+        # List of effective library names to try, in order of preference:
         # bcpp_xxx.lib is better than xxx.lib
         # and xxx_d.lib is better than xxx.lib if debug is set
+        #
+        # The "bcpp_" prefix is to handle a Python installation for people
+        # with multiple compilers (primarily Distutils hackers, I suspect
+        # ;-).  The idea is they'd have one static library for each
+        # compiler they care about, since (almost?) every Windows compiler
+        # seems to have a different format for static libraries.
+        if debug:
+            dlib = (lib + "_d")
+            try_names = ("bcpp_" + dlib, "bcpp_" + lib, dlib, lib)
+        else:
+            try_names = ("bcpp_" + lib, lib)
+
         for dir in dirs:
-            if debug:
-                libfile = os.path.join (
-                    dir, self.library_filename ("bcpp_" + lib + "_d"))
-                if os.path.exists (libfile):
+            for name in try_names:
+                libfile = os.path.join(dir, self.library_filename(name))
+                if os.path.exists(libfile):
                     return libfile
-            libfile = os.path.join (
-                dir, self.library_filename ("bcpp_" + lib))
-            if os.path.exists (libfile):
-                return libfile
-            if debug:
-                libfile = os.path.join (
-                    dir, self.library_filename(lib + '_d'))
-                if os.path.exists (libfile):
-                    return libfile
-            libfile = os.path.join (dir, self.library_filename (lib))
-            if os.path.exists (libfile):
-                return libfile
-
         else:
             # Oops, didn't find it in *any* of 'dirs'
             return None