[Python-checkins] cpython: When building sqlite3, the directory where sqlite.h was found was

brett.cannon python-checkins at python.org
Tue Jun 7 05:09:38 CEST 2011


http://hg.python.org/cpython/rev/b313fc77fa11
changeset:   70694:b313fc77fa11
user:        Brett Cannon <brett at python.org>
date:        Mon Jun 06 20:09:10 2011 -0700
summary:
  When building sqlite3, the directory where sqlite.h was found was
always appended to the include directories regardless of whether it
was already in the list of directories. This could cause issue if
sqlite was installed in the same location as another install of
Python. Now a check is done to make sure the directory is not included
twice.

files:
  Misc/NEWS |  3 +++
  setup.py  |  9 +++++++--
  2 files changed, 10 insertions(+), 2 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -771,6 +771,9 @@
 Build
 -----
 
+- Do not accidentally include the directory containing sqlite.h twice when
+  building sqlite3.
+
 - Issue #11217: For 64-bit/32-bit Mac OS X universal framework builds,
   ensure "make install" creates symlinks in --prefix bin for the "-32"
   files in the framework bin directory like the installer does.
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -1045,10 +1045,15 @@
             else:
                 sqlite_extra_link_args = ()
 
+            include_dirs = ["Modules/_sqlite"]
+            # Only include the directory where sqlite was found if it does
+            # not already exist in set include directories, otherwise you
+            # can end up with a bad search path order.
+            if sqlite_incdir not in self.compiler.include_dirs:
+                include_dirs.append(sqlite_incdir)
             exts.append(Extension('_sqlite3', sqlite_srcs,
                                   define_macros=sqlite_defines,
-                                  include_dirs=["Modules/_sqlite",
-                                                sqlite_incdir],
+                                  include_dirs=include_dirs,
                                   library_dirs=sqlite_libdir,
                                   runtime_library_dirs=sqlite_libdir,
                                   extra_link_args=sqlite_extra_link_args,

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list