Bug 22618

Summary: QtWebKit MinGW does not link
Product: WebKit Reporter: Laszlo Gombos <laszlo.gombos>
Component: WebKit QtAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: hausmann, vestbo
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Windows XP   
Attachments:
Description Flags
Fix hausmann: review+

Description Laszlo Gombos 2008-12-02 22:01:14 PST
Building QtWebKit on Windows fails to link. I installed the latest Qt release (qt-win-opensource-4.4.3-mingw.exe)  - MinGW was downloaded and installed by the Qt installer - and followed the instructions from http://trac.webkit.org/wiki/BuildingQtOnWindows.

There are several problems with QtWebKit on MinGW, will list the most obvious ones
 a./ ENABLE_OFFLINE_WEB_APPLICATIONS and ENABLE_DOM_STORAGE are enabled even though ENABLE_DATABASE is disabled. This is a problem, because ENABLE_OFFLINE_WEB_APPLICATIONS and ENABLE_DOM_STORAGE are dependent on ENABLE_DATABASE. This will eventually lead to a link-time failure.
 b./ ENABLE_DATABASE is deliberately turned off if QtWebKit is not built inside an Qt release
 
In some instances (e.g. when SQLITE3SRCDIR is defined or building inside Qt) QtWebKit build can pick up sqlite3.c and link it in. I would like to propose to extend this functionality to the Win MingGW build as well, since the Qt release comes with an sqlite3.c source.
Comment 1 Laszlo Gombos 2008-12-02 22:03:35 PST
Created attachment 25700 [details]
Fix

The included patch fixes the following problems/adds the following features:
 - Try to detect if sqlite3.c is available as part of a Qt installation, or specified by SQLITE3SRCDIR
 - When not building inside Qt only disable ENABLE_DATABASE on windows, if sqlite3.c is not available (instead of all the time)
 - When ENABLE_DATABASE is disabled, disable ENABLE_OFFLINE_WEB_APPLICATIONS and ENABLE_DOM_STORAGE as well, not only ENABLE_ICONDATABASE
 - ENABLE_DATABASE is now disabled by default if ENABLE_OFFLINE_WEB_APPLICATIONS, ENABLE_DOM_STORAGE and ENABLE_ICONDATABASE all disabled (I have not changed however the default values for NABLE_OFFLINE_WEB_APPLICATIONS, ENABLE_DOM_STORAGE and ENABLE_ICONDATABASE features.)
 - Consolidated build logic so that there is only one code branch where sqlite3.c gets added to the source list. In addition copied SQLITE DEFINES from sqlite.pro, these were not there before.
Comment 2 Simon Hausmann 2008-12-18 05:53:28 PST
Comment on attachment 25700 [details]
Fix

Good catch, thanks for the cleanups!
Comment 3 Tor Arne Vestbø 2008-12-18 06:38:37 PST
Landed in r39372