[Qt] Move listing of include paths and libs to pri files in sources
authorvestbo@webkit.org <vestbo@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 6 Jan 2012 12:53:33 +0000 (12:53 +0000)
committervestbo@webkit.org <vestbo@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 6 Jan 2012 12:53:33 +0000 (12:53 +0000)
Includepaths are sometimes modified by non-Qt contributors so keeping
them in files inside Sources makes it more likely that they are updated
along with project files for the other ports.

Using pri files instead of prf files for this also has the benefit that
the include() from the main target file can be parsed and followed by
Qt Creator -- something that does not work with load().

Dependency from a target to a library through the WEBKIT variable are
handled through forwarding-files in Tools/qmake/mkspecs/modules, which
set the source root of the module and include the right pri file.

Ideally we'd use the variant of include() that takes an optional
namespace to read the variables into, or the fromfile() function,
but both of these add an overhead of about 40% on the total qmake
runtime, due to making a deep copy of all the variables in the
project or re-reading all the prf files from scratch.

Reviewed by Simon Hausmann.
Reviewed by Ossy.

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

19 files changed:
ChangeLog
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/JavaScriptCore.pri [moved from Tools/qmake/mkspecs/features/javascriptcore.prf with 100% similarity]
Source/JavaScriptCore/Target.pri
Source/JavaScriptCore/wtf/wtf.pri [moved from Tools/qmake/mkspecs/features/wtf.prf with 90% similarity]
Source/JavaScriptCore/wtf/wtf.pro
Source/WebCore/ChangeLog
Source/WebCore/Target.pri
Source/WebCore/WebCore.pri [moved from Tools/qmake/mkspecs/features/webcore.prf with 100% similarity]
Source/WebKit2/ChangeLog
Source/WebKit2/Target.pri
Source/WebKit2/WebKit2.pri [moved from Tools/qmake/mkspecs/features/webkit2.prf with 100% similarity]
Tools/ChangeLog
Tools/qmake/mkspecs/features/default_post.prf
Tools/qmake/mkspecs/modules/javascriptcore.prf [new file with mode: 0644]
Tools/qmake/mkspecs/modules/webcore.prf [new file with mode: 0644]
Tools/qmake/mkspecs/modules/webkit2.prf [new file with mode: 0644]
Tools/qmake/mkspecs/modules/wtf.prf [new file with mode: 0644]
WebKit.pro

index b7b893bae20f1ff88e2c2be44fe6c9a7cdc4b2da..7033c19be7710083f751f89b4658acbd6c743df6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move listing of include paths and libs to pri files in sources
+
+        Includepaths are sometimes modified by non-Qt contributors so keeping
+        them in files inside Sources makes it more likely that they are updated
+        along with project files for the other ports.
+
+        Using pri files instead of prf files for this also has the benefit that
+        the include() from the main target file can be parsed and followed by
+        Qt Creator -- something that does not work with load().
+
+        Dependency from a target to a library through the WEBKIT variable are
+        handled through forwarding-files in Tools/qmake/mkspecs/modules, which
+        set the source root of the module and include the right pri file.
+
+        Ideally we'd use the variant of include() that takes an optional
+        namespace to read the variables into, or the fromfile() function,
+        but both of these add an overhead of about 40% on the total qmake
+        runtime, due to making a deep copy of all the variables in the
+        project or re-reading all the prf files from scratch.
+
+        Reviewed by Simon Hausmann.
+        Reviewed by Ossy.
+
+        * WebKit.pro:
+
 2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
 
         [Qt] Add a few more files ot OTHER_FILES
index 9c5667d258872b4918391dfa1d5e7f619c0481f5..8408f380c96bc443c1d330027fb4a81233f0abf7 100644 (file)
@@ -1,3 +1,33 @@
+2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move listing of include paths and libs to pri files in sources
+
+        Includepaths are sometimes modified by non-Qt contributors so keeping
+        them in files inside Sources makes it more likely that they are updated
+        along with project files for the other ports.
+
+        Using pri files instead of prf files for this also has the benefit that
+        the include() from the main target file can be parsed and followed by
+        Qt Creator -- something that does not work with load().
+
+        Dependency from a target to a library through the WEBKIT variable are
+        handled through forwarding-files in Tools/qmake/mkspecs/modules, which
+        set the source root of the module and include the right pri file.
+
+        Ideally we'd use the variant of include() that takes an optional
+        namespace to read the variables into, or the fromfile() function,
+        but both of these add an overhead of about 40% on the total qmake
+        runtime, due to making a deep copy of all the variables in the
+        project or re-reading all the prf files from scratch.
+
+        Reviewed by Simon Hausmann.
+        Reviewed by Ossy.
+
+        * JavaScriptCore.pri: Renamed from Tools/qmake/mkspecs/features/javascriptcore.prf.
+        * Target.pri:
+        * wtf/wtf.pri: Renamed from Tools/qmake/mkspecs/features/wtf.prf.
+        * wtf/wtf.pro:
+
 2012-01-06  Hajime Morrita  <morrita@chromium.org>
 
         WTF::String: Inline method shouldn't have WTF_EXPORT_PRIVATE
index bdfda16e9d9dd82c33ad0b3a68abcd514a3f4e1d..8b3e77d4296ddc29bafd69a5eaf094c5a766c3df 100644 (file)
@@ -7,7 +7,7 @@
 TEMPLATE = lib
 TARGET = JavaScriptCore
 
-load(javascriptcore)
+include(JavaScriptCore.pri)
 
 WEBKIT += wtf
 QT += core
similarity index 90%
rename from Tools/qmake/mkspecs/features/wtf.prf
rename to Source/JavaScriptCore/wtf/wtf.pri
index 02d6e729676c3425e87a6462d19034649f18a0fb..2a3c609d5f5fd1f2baa19905565148f7172f1709 100644 (file)
@@ -1,5 +1,6 @@
 # -------------------------------------------------------------------
-# This file contains shared rules used both when building against WTF
+# This file contains shared rules used both when building WTF itself
+# and for targets that depend in some way on WTF.
 #
 # See 'Tools/qmake/README' for an overview of the build system
 # -------------------------------------------------------------------
index cb2791408a8d00af2c41648b6268b6e7ba6eccd2..e59d118e2b1426884e0c75288a1a47361fee4460 100644 (file)
@@ -7,7 +7,7 @@
 TEMPLATE = lib
 TARGET = WTF
 
-load(wtf)
+include(wtf.pri)
 
 CONFIG += staticlib
 
index 72f9c8624e8e9c4ffa230826ae59fe55756a4120..0ffc273700ccfdd5bb6331789b60ca7f60ec6da3 100644 (file)
@@ -1,3 +1,31 @@
+2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move listing of include paths and libs to pri files in sources
+
+        Includepaths are sometimes modified by non-Qt contributors so keeping
+        them in files inside Sources makes it more likely that they are updated
+        along with project files for the other ports.
+
+        Using pri files instead of prf files for this also has the benefit that
+        the include() from the main target file can be parsed and followed by
+        Qt Creator -- something that does not work with load().
+
+        Dependency from a target to a library through the WEBKIT variable are
+        handled through forwarding-files in Tools/qmake/mkspecs/modules, which
+        set the source root of the module and include the right pri file.
+
+        Ideally we'd use the variant of include() that takes an optional
+        namespace to read the variables into, or the fromfile() function,
+        but both of these add an overhead of about 40% on the total qmake
+        runtime, due to making a deep copy of all the variables in the
+        project or re-reading all the prf files from scratch.
+
+        Reviewed by Simon Hausmann.
+        Reviewed by Ossy.
+
+        * Target.pri:
+        * WebCore.pri: Renamed from Tools/qmake/mkspecs/features/webcore.prf.
+
 2012-01-06  Adam Barth  <abarth@webkit.org>
 
         FrameDestructionObserver should be more full-service
index 60177b054ba8b1b6f99f827db8a76456ac64ab57..68b9fe0ce4b58c488d1f473e1be4680e583598e0 100644 (file)
@@ -7,7 +7,7 @@
 TEMPLATE = lib
 TARGET = WebCore
 
-load(webcore)
+include(WebCore.pri)
 
 WEBKIT += wtf
 !v8: WEBKIT += javascriptcore
index c2acb14d7223c8580ddc7aeba497b730006db794..49cdb713dc1cb48fa16fd1c39caa0f1e5e1046f3 100644 (file)
@@ -1,3 +1,31 @@
+2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move listing of include paths and libs to pri files in sources
+
+        Includepaths are sometimes modified by non-Qt contributors so keeping
+        them in files inside Sources makes it more likely that they are updated
+        along with project files for the other ports.
+
+        Using pri files instead of prf files for this also has the benefit that
+        the include() from the main target file can be parsed and followed by
+        Qt Creator -- something that does not work with load().
+
+        Dependency from a target to a library through the WEBKIT variable are
+        handled through forwarding-files in Tools/qmake/mkspecs/modules, which
+        set the source root of the module and include the right pri file.
+
+        Ideally we'd use the variant of include() that takes an optional
+        namespace to read the variables into, or the fromfile() function,
+        but both of these add an overhead of about 40% on the total qmake
+        runtime, due to making a deep copy of all the variables in the
+        project or re-reading all the prf files from scratch.
+
+        Reviewed by Simon Hausmann.
+        Reviewed by Ossy.
+
+        * Target.pri:
+        * WebKit2.pri: Renamed from Tools/qmake/mkspecs/features/webkit2.prf.
+
 2012-01-06  Zeno Albisser  <zeno@webkit.org>
 
         [Qt][WK2] Add test for application URL schemes.
index 733469eeae8e300c831df9aa03af3c7f4b6eccdf..35983f07656db480f835accf63fe3cd66da97c90 100644 (file)
@@ -8,7 +8,8 @@ TEMPLATE = lib
 TARGET = WebKit2
 
 load(features)
-load(webkit2)
+
+include(WebKit2.pri)
 
 WEBKIT += wtf javascriptcore webcore
 QT += declarative
index a8bb56e4c47699723e346b213cd8a0ad8946c0cb..3db18c59b5e5c6a53b145c3bc0e3a9cecbc69659 100644 (file)
@@ -1,3 +1,34 @@
+2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        [Qt] Move listing of include paths and libs to pri files in sources
+
+        Includepaths are sometimes modified by non-Qt contributors so keeping
+        them in files inside Sources makes it more likely that they are updated
+        along with project files for the other ports.
+
+        Using pri files instead of prf files for this also has the benefit that
+        the include() from the main target file can be parsed and followed by
+        Qt Creator -- something that does not work with load().
+
+        Dependency from a target to a library through the WEBKIT variable are
+        handled through forwarding-files in Tools/qmake/mkspecs/modules, which
+        set the source root of the module and include the right pri file.
+
+        Ideally we'd use the variant of include() that takes an optional
+        namespace to read the variables into, or the fromfile() function,
+        but both of these add an overhead of about 40% on the total qmake
+        runtime, due to making a deep copy of all the variables in the
+        project or re-reading all the prf files from scratch.
+
+        Reviewed by Simon Hausmann.
+        Reviewed by Ossy.
+
+        * qmake/mkspecs/features/default_post.prf:
+        * qmake/mkspecs/modules/javascriptcore.prf: Added.
+        * qmake/mkspecs/modules/webcore.prf: Added.
+        * qmake/mkspecs/modules/webkit2.prf: Added.
+        * qmake/mkspecs/modules/wtf.prf: Added.
+
 2012-01-06  JungJik Lee  <jungjik.lee@samsung.com>
 
         [EFL] Add pre-render handling code in EWebLauncher.
index e06f6bcc8f6d7d78508cc4ade7433bcb32d88fc6..83cd7ab50969690152d0e7c1dc283b1d21b844ef 100644 (file)
@@ -57,7 +57,8 @@ for(library, WEBKIT) {
 
     # We definitly need include paths and such (this will set
     # SOURCE_DIR to the right path so we can use it below).
-    load($$lower($$library))
+    library_identifier = $$lower($$library)
+    include(../modules/$${library_identifier}.prf)
 
     # More juggling
     dependent_libs = $$LIBS
@@ -65,7 +66,7 @@ for(library, WEBKIT) {
 
     # But we might also need to link against it
     needToLink() {
-        linkAgainstLibrary($$library, $$SOURCE_DIR)
+        linkAgainstLibrary($$library, $$eval(WEBKIT.$${library_identifier}.root_source_dir))
         LIBS += $$dependent_libs
     }
 
diff --git a/Tools/qmake/mkspecs/modules/javascriptcore.prf b/Tools/qmake/mkspecs/modules/javascriptcore.prf
new file mode 100644 (file)
index 0000000..6d9656c
--- /dev/null
@@ -0,0 +1,10 @@
+# -------------------------------------------------------------------
+# Module file for JavaScriptCore, used by targets that depend on
+# JavaScriptCore
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+WEBKIT.javascriptcore.root_source_dir = $${ROOT_WEBKIT_DIR}/Source/JavaScriptCore
+
+include($${WEBKIT.javascriptcore.root_source_dir}/JavaScriptCore.pri)
diff --git a/Tools/qmake/mkspecs/modules/webcore.prf b/Tools/qmake/mkspecs/modules/webcore.prf
new file mode 100644 (file)
index 0000000..9bd1776
--- /dev/null
@@ -0,0 +1,9 @@
+# -------------------------------------------------------------------
+# Module file for WebCore, used by targets that depend on WebCore
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+WEBKIT.webcore.root_source_dir = $${ROOT_WEBKIT_DIR}/Source/WebCore
+
+include($${WEBKIT.webcore.root_source_dir}/WebCore.pri)
diff --git a/Tools/qmake/mkspecs/modules/webkit2.prf b/Tools/qmake/mkspecs/modules/webkit2.prf
new file mode 100644 (file)
index 0000000..a250216
--- /dev/null
@@ -0,0 +1,9 @@
+# -------------------------------------------------------------------
+# Module file for WebKit2, used by targets that depend on WebKit2
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+WEBKIT.webkit2.root_source_dir = $${ROOT_WEBKIT_DIR}/Source/WebKit2
+
+include($${WEBKIT.webkit2.root_source_dir}/WebKit2.pri)
diff --git a/Tools/qmake/mkspecs/modules/wtf.prf b/Tools/qmake/mkspecs/modules/wtf.prf
new file mode 100644 (file)
index 0000000..256a955
--- /dev/null
@@ -0,0 +1,9 @@
+# -------------------------------------------------------------------
+# Module file for WTF, used by targets that depend on WTF
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+WEBKIT.wtf.root_source_dir = $${ROOT_WEBKIT_DIR}/Source/JavaScriptCore/wtf
+
+include($${WEBKIT.wtf.root_source_dir}/wtf.pri)
index 3e096441f8564323bd70bbec37747dd75ffc8258..2df08f5eb339c62a15d087a0432a5ef256fa7e77 100644 (file)
@@ -37,10 +37,10 @@ SUBDIRS += Tools
 
 OTHER_FILES = \
     Tools/qmake/README \
-    Tools/qmake/mkspecs/modules/qt_webkit.pri \
     Tools/qmake/configure.pro \
     Tools/qmake/sync.profile \
     Tools/qmake/config.tests/fontconfig/* \
+    Tools/qmake/mkspecs/modules/* \
     Tools/qmake/mkspecs/features/*.prf \
     Tools/qmake/mkspecs/features/mac/*.prf \
     Tools/qmake/mkspecs/features/unix/*.prf \