[Qt] Fix linkage against SQLite
authorhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 12 Dec 2012 10:46:55 +0000 (10:46 +0000)
committerhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 12 Dec 2012 10:46:55 +0000 (10:46 +0000)
https://bugs.webkit.org/show_bug.cgi?id=104781

Reviewed by Csaba Osztrogonác.

Detect SQLite either through pkg-config, from the SQLITE3SRCDIR
environment variable or from qtbase via a qt5.git build. Bail out early
with an error message if neither option applies.

This removes the usage of $$QT.core.sources and the dependency on Qt's
system-sqlite configure setting. We should always favour a system
library over a copy in Qt.

Source/WebCore:

* Target.pri:
* WebCore.pri:

Tools:

* qmake/mkspecs/features/features.prf:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137444 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/Target.pri
Source/WebCore/WebCore.pri
Tools/ChangeLog
Tools/qmake/mkspecs/features/features.prf

index c1e77bd..cdad72f 100644 (file)
@@ -1,3 +1,21 @@
+2012-12-12  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Fix linkage against SQLite
+        https://bugs.webkit.org/show_bug.cgi?id=104781
+
+        Reviewed by Csaba Osztrogonác.
+
+        Detect SQLite either through pkg-config, from the SQLITE3SRCDIR
+        environment variable or from qtbase via a qt5.git build. Bail out early
+        with an error message if neither option applies.
+
+        This removes the usage of $$QT.core.sources and the dependency on Qt's
+        system-sqlite configure setting. We should always favour a system
+        library over a copy in Qt.
+
+        * Target.pri:
+        * WebCore.pri:
+
 2012-12-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
 
         [TexMap] Uninitialized m_context pointer in TextureMapper
index 18e618d..de7b4a2 100644 (file)
@@ -4067,7 +4067,7 @@ use?(WEBP) {
     SOURCES += platform/image-decoders/webp/WEBPImageDecoder.cpp
 }
 
-!system-sqlite:exists( $${SQLITE3SRCDIR}/sqlite3.c ) {
+!have?(sqlite3):exists($${SQLITE3SRCDIR}/sqlite3.c) {
     # Build sqlite3 into WebCore from source
     # somewhat copied from $$QT_SOURCE_TREE/src/plugins/sqldrivers/sqlite/sqlite.pro
     SOURCES += $${SQLITE3SRCDIR}/sqlite3.c
index acad208..56c6d3d 100644 (file)
@@ -234,16 +234,18 @@ use?(GRAPHICS_SURFACE) {
     }
 }
 
-SQLITE3SRCDIR = $$(SQLITE3SRCDIR)
-isEmpty(SQLITE3SRCDIR) {
-    SQLITE3SRCDIR = $$QT.core.sources/../3rdparty/sqlite/
-}
-!system-sqlite:exists( $${SQLITE3SRCDIR}/sqlite3.c ) {
-    INCLUDEPATH += $${SQLITE3SRCDIR}
-    DEFINES += SQLITE_CORE SQLITE_OMIT_LOAD_EXTENSION SQLITE_OMIT_COMPLETE
+have?(sqlite3) {
+    PKGCONFIG += sqlite3
 } else {
-    INCLUDEPATH += $${SQLITE3SRCDIR}
-    LIBS += -lsqlite3
+    SQLITE3SRCDIR = $$(SQLITE3SRCDIR)
+    isEmpty(SQLITE3SRCDIR): SQLITE3SRCDIR = ../../../qtbase/src/3rdparty/sqlite/
+    exists($${SQLITE3SRCDIR}/sqlite3.c) {
+        INCLUDEPATH += $${SQLITE3SRCDIR}
+        DEFINES += SQLITE_CORE SQLITE_OMIT_LOAD_EXTENSION SQLITE_OMIT_COMPLETE
+    } else {
+        INCLUDEPATH += $${SQLITE3SRCDIR}
+        LIBS += -lsqlite3
+    }
 }
 
 use?(libjpeg): LIBS += -ljpeg
index 69d8d9a..4d880a4 100644 (file)
@@ -1,3 +1,20 @@
+2012-12-12  Simon Hausmann  <simon.hausmann@digia.com>
+
+        [Qt] Fix linkage against SQLite
+        https://bugs.webkit.org/show_bug.cgi?id=104781
+
+        Reviewed by Csaba Osztrogonác.
+
+        Detect SQLite either through pkg-config, from the SQLITE3SRCDIR
+        environment variable or from qtbase via a qt5.git build. Bail out early
+        with an error message if neither option applies.
+
+        This removes the usage of $$QT.core.sources and the dependency on Qt's
+        system-sqlite configure setting. We should always favour a system
+        library over a copy in Qt.
+
+        * qmake/mkspecs/features/features.prf:
+
 2012-12-12  Tommy Widenflycht  <tommyw@google.com>
 
         MediaStream API: Change the data channel descriptor pattern to a handler pattern
index 0212e79..062a8c9 100644 (file)
@@ -120,6 +120,14 @@ defineTest(detectFeatures) {
         WEBKIT_CONFIG += video use_qt_multimedia
     }
 
+    # Try to use an system wide SQlite installation
+    !contains(QT_CONFIG, no-pkg-config):packagesExist("sqlite3") {
+        WEBKIT_CONFIG += have_sqlite3
+    } else {
+        SQLITE3SRCDIR = $$(SQLITE3SRCDIR)
+        isEmpty(SQLITE3SRCDIR):isEmpty(_QMAKE_SUPER_CACHE_): error("WebKit requires SQLite. Either make it available via pkg-config, set $SQLITE3SRCDIR or build WebKit under qt5.git.")
+    }
+
     # Gamepad API Support
     packagesExist(libudev): WEBKIT_CONFIG += gamepad