[Qt] Refactor and clean up the qmake build system
authorvestbo@webkit.org <vestbo@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Nov 2011 13:19:58 +0000 (13:19 +0000)
committervestbo@webkit.org <vestbo@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Nov 2011 13:19:58 +0000 (13:19 +0000)
commitbbea75d6fa6d7f78154dd99d7d99c42fad009d78
treece2df0864f43a2c364416a57fe27205568f336d3
parent8dba3ba0946306f71d345389085189feaf8d3f7c
[Qt] Refactor and clean up the qmake build system

The qmake build system has accumulated a bit of cruft and redundancy
over time. There's also a fairly tight coupling between how to build
the various targets, and _what_ to build, making it harder to add new
rules or sources. This patch aims to elevate these issues somewhat.

This is a short-list of the changes:

  * The rules for how to build targets are now mostly contained as
    prf-files in Tools/qmake/mkspecs/features. Using mkspecs also
    allows us to do pre- and post-processing of each project file,
    which helps to clean up the actual project files.

  * Derived sources are no longer generated as a separate make-step
    but is part of each target's project file as a subdir. Makefile
    rules are used to ensure that we run make on the derived sources
    before running qmake on the actual target makefile. This makes
    it easier to keep a proper dependency between derived sources
    and the target.

  * We use GNU make and the compiler to generate dependencies on
    UNIX-based systems running Qt 5. This allows us to lessen the
    need to run qmake, which should reduce compile time.

  * WebKit2 is now build by default if building with Qt 5. It can
    be disabled by passing --no-webkit2 to build-webkit.

The result of these changes are hopefully a cleaner and easier
build system to modify, and faster build times due to no longer
running qmake on every single build. It's also a first step
towards possibly generating the list of sources using another
build system.

https://bugs.webkit.org/show_bug.cgi?id=71222

Reviewed by Simon Hausmann.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@99274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
104 files changed:
ChangeLog
Source/DerivedSources.pro [deleted file]
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/DerivedSources.pri [new file with mode: 0644]
Source/JavaScriptCore/DerivedSources.pro [deleted file]
Source/JavaScriptCore/JavaScriptCore.pro
Source/JavaScriptCore/Target.pri [new file with mode: 0644]
Source/JavaScriptCore/headers.pri [deleted file]
Source/JavaScriptCore/jsc.pro
Source/JavaScriptCore/wtf/wtf.pri
Source/JavaScriptCore/yarr/yarr.pri
Source/QtWebKit.pro [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.pri [moved from Source/WebCore/CodeGenerators.pri with 67% similarity]
Source/WebCore/DerivedSources.pro [deleted file]
Source/WebCore/Target.pri [new file with mode: 0644]
Source/WebCore/WebCore.pro
Source/WebKit.pri [deleted file]
Source/WebKit.pro [deleted file]
Source/WebKit/ChangeLog
Source/WebKit/WebKit.pri [new file with mode: 0644]
Source/WebKit/qt/Api/DerivedSources.pro [deleted file]
Source/WebKit/qt/Api/headers.pri [deleted file]
Source/WebKit/qt/Api/qwebpage.cpp
Source/WebKit/qt/ChangeLog
Source/WebKit/qt/QtWebKit.pro [deleted file]
Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
Source/WebKit/qt/WebCoreSupport/PlatformStrategiesQt.cpp [moved from Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp with 73% similarity]
Source/WebKit/qt/WebCoreSupport/PlatformStrategiesQt.h [moved from Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h with 95% similarity]
Source/WebKit/qt/declarative/declarative.pro
Source/WebKit/qt/docs/docs.pri
Source/WebKit/qt/docs/webkitsnippets/webelement/webelement.pro
Source/WebKit/qt/tests/MIMESniffing/MIMESniffing.pro
Source/WebKit/qt/tests/benchmarks/loading/loading.pro
Source/WebKit/qt/tests/benchmarks/painting/painting.pro
Source/WebKit/qt/tests/benchmarks/webgl/webgl.pro
Source/WebKit/qt/tests/hybridPixmap/hybridPixmap.pro
Source/WebKit/qt/tests/qdeclarativewebview/qdeclarativewebview.pro
Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro
Source/WebKit/qt/tests/qwebelement/qwebelement.pro
Source/WebKit/qt/tests/qwebframe/qwebframe.pro
Source/WebKit/qt/tests/qwebhistory/qwebhistory.pro
Source/WebKit/qt/tests/qwebhistoryinterface/qwebhistoryinterface.pro
Source/WebKit/qt/tests/qwebinspector/qwebinspector.pro
Source/WebKit/qt/tests/qwebpage/qwebpage.pro
Source/WebKit/qt/tests/qwebplugindatabase/qwebplugindatabase.pro
Source/WebKit/qt/tests/qwebview/qwebview.pro
Source/WebKit/qt/tests/tests.pri
Source/WebKit/qt/tests/tests.pro [deleted file]
Source/WebKit2/ChangeLog
Source/WebKit2/DerivedSources.pri [moved from Source/WebKit2/DerivedSources.pro with 55% similarity]
Source/WebKit2/Target.pri [new file with mode: 0644]
Source/WebKit2/UIProcess/API/qt/tests/tests.pri
Source/WebKit2/UIProcess/API/qt/tests/tests.pro [deleted file]
Source/WebKit2/WebKit2.pri
Source/WebKit2/WebKit2.pro
Source/WebKit2/WebKit2API.pri [deleted file]
Source/WebKit2/WebProcess.pro
Source/api.pri [new file with mode: 0644]
Source/tests.pri [new file with mode: 0644]
Tools/ChangeLog
Tools/DerivedSources.pro [deleted file]
Tools/DumpRenderTree/qt/DumpRenderTree.pro
Tools/DumpRenderTree/qt/ImageDiff.pro
Tools/DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro
Tools/MiniBrowser/qt/MiniBrowser.pro
Tools/QtTestBrowser/QtTestBrowser.pro
Tools/QtTestBrowser/launcherwindow.cpp
Tools/QtTestBrowser/launcherwindow.h
Tools/Scripts/build-webkit
Tools/Scripts/webkitdirs.pm
Tools/Tools.pro
Tools/WebKitTestRunner/DerivedSources.pri [new file with mode: 0644]
Tools/WebKitTestRunner/DerivedSources.pro [deleted file]
Tools/WebKitTestRunner/EventSenderProxy.h
Tools/WebKitTestRunner/InjectedBundle/DerivedSources.pri [new file with mode: 0644]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.pro [new file with mode: 0644]
Tools/WebKitTestRunner/InjectedBundle/Target.pri [new file with mode: 0644]
Tools/WebKitTestRunner/InjectedBundle/qt/InjectedBundle.pro [deleted file]
Tools/WebKitTestRunner/Target.pri [new file with mode: 0644]
Tools/WebKitTestRunner/WebKitTestRunner.pro
Tools/WebKitTestRunner/qt/TestInvocationQt.cpp
Tools/WebKitTestRunner/qt/WebKitTestRunner.pro [deleted file]
Tools/qmake/README [new file with mode: 0644]
Tools/qmake/mkspecs/features/default_post.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/default_pre.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/features.prf [moved from Source/WebCore/features.pri with 95% similarity]
Tools/qmake/mkspecs/features/functions.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/javascriptcore.prf [moved from Source/JavaScriptCore/JavaScriptCore.pri with 53% similarity]
Tools/qmake/mkspecs/features/mac/default_post.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/mac/default_pre.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/minimal_qt.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/qtwebkit.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/rpath.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/unix/default_post.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/unix/default_pre.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/valgrind.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/webcore.prf [moved from Source/WebCore/WebCore.pri with 88% similarity]
Tools/qmake/mkspecs/features/webkit2.prf [new file with mode: 0644]
Tools/qmake/mkspecs/features/win32/default_post.prf [new file with mode: 0644]
Tools/qmake/qt_webkit.pri [moved from Source/WebKit/qt/qt_webkit_version.pri with 52% similarity]
Tools/qmake/syncqt-4.8 [new file with mode: 0644]
WebKit.pro [new file with mode: 0644]
sync.profile [moved from Source/sync.profile with 72% similarity]