Title: [109733] trunk/Tools
Revision
109733
Author
ves...@webkit.org
Date
2012-03-05 05:00:09 -0800 (Mon, 05 Mar 2012)

Log Message

[Qt] Use config test to determine if the compiler supports -MD

We used to assume that unix systems building against Qt5 would have
a compiler that supported -MD. Although this was usually the case,
we failed to take into account broken tools for distributed builds
(e.g. teambuilder or icecream) which would end up producing .d files
in the root of the build dir instead of along-side the object file.

Now that we use a config-test to determine the support, we'll capture
those cases, unless distributed builds are enabled after the initial
build-webkit run.

Reviewed by Csaba Osztrogonác.

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/ChangeLog (109732 => 109733)


--- trunk/Tools/ChangeLog	2012-03-05 12:03:53 UTC (rev 109732)
+++ trunk/Tools/ChangeLog	2012-03-05 13:00:09 UTC (rev 109733)
@@ -1,3 +1,27 @@
+2012-03-05  Tor Arne Vestbø  <tor.arne.ves...@nokia.com>
+
+        [Qt] Use config test to determine if the compiler supports -MD
+
+        We used to assume that unix systems building against Qt5 would have
+        a compiler that supported -MD. Although this was usually the case,
+        we failed to take into account broken tools for distributed builds
+        (e.g. teambuilder or icecream) which would end up producing .d files
+        in the root of the build dir instead of along-side the object file.
+
+        Now that we use a config-test to determine the support, we'll capture
+        those cases, unless distributed builds are enabled after the initial
+        build-webkit run.
+
+        Reviewed by Csaba Osztrogonác.
+
+        * Tools.pro:
+        * qmake/config.tests/gccdepends/empty.cpp: Added.
+        * qmake/config.tests/gccdepends/gccdepends.pro: Added.
+        * qmake/mkspecs/features/default_pre.prf:
+        * qmake/mkspecs/features/features.prf:
+        * qmake/mkspecs/features/unix/default_pre.prf:
+        * qmake/sync.profile:
+
 2012-03-05  Csaba Osztrogonác  <o...@webkit.org>
 
         Qt API test buildstep throws exception after buildmaster update

Modified: trunk/Tools/Tools.pro (109732 => 109733)


--- trunk/Tools/Tools.pro	2012-03-05 12:03:53 UTC (rev 109732)
+++ trunk/Tools/Tools.pro	2012-03-05 13:00:09 UTC (rev 109733)
@@ -29,6 +29,7 @@
     qmake/sync.profile \
     qmake/config.tests/README \
     qmake/config.tests/fontconfig/* \
+    qmake/config.tests/gccdepends/* \
     qmake/mkspecs/modules/* \
     qmake/mkspecs/features/*.prf \
     qmake/mkspecs/features/mac/*.prf \

Added: trunk/Tools/qmake/config.tests/gccdepends/empty.cpp ( => )


Added: trunk/Tools/qmake/config.tests/gccdepends/gccdepends.pro
===================================================================
--- trunk/Tools/qmake/config.tests/gccdepends/gccdepends.pro	                        (rev 0)
+++ trunk/Tools/qmake/config.tests/gccdepends/gccdepends.pro	2012-03-05 13:00:09 UTC (rev 109733)
@@ -0,0 +1,12 @@
+TEMPLATE = aux
+SOURCES += empty.cpp
+OBJECTS_DIR = obj
+QMAKE_CXXFLAGS += -MD
+
+test.commands = test -f $$OBJECTS_DIR/empty.d && test ! -f empty.d && touch $$basename(PWD)
+test.depends = $$OBJECTS_DIR/empty.o
+QMAKE_EXTRA_TARGETS += test
+
+default.target = all
+default.depends += test
+QMAKE_EXTRA_TARGETS += default

Modified: trunk/Tools/qmake/mkspecs/features/default_pre.prf (109732 => 109733)


--- trunk/Tools/qmake/mkspecs/features/default_pre.prf	2012-03-05 12:03:53 UTC (rev 109732)
+++ trunk/Tools/qmake/mkspecs/features/default_pre.prf	2012-03-05 13:00:09 UTC (rev 109733)
@@ -7,6 +7,15 @@
 
 load(functions)
 
+# Load results of config tests (only supported in Qt 5)
+haveQt(5): include($${ROOT_BUILD_DIR}/Tools/qmake/.qmake.cache, , true)
+
+unix:config_test_gccdepends {
+    # We have a compiler that supports the -MD option (and neither
+    # teambuilder nor icecream is messing up the .d file output).
+    CONFIG += GNUmake gcc_MD_depends
+}
+
 # FIXME: In this case we probably want to exit early so that we
 # don't load all of the custom build tweaks needlessly.
 pro_file = $$_PRO_FILE_ # Checking the variable directly does not work

Modified: trunk/Tools/qmake/mkspecs/features/features.prf (109732 => 109733)


--- trunk/Tools/qmake/mkspecs/features/features.prf	2012-03-05 12:03:53 UTC (rev 109732)
+++ trunk/Tools/qmake/mkspecs/features/features.prf	2012-03-05 13:00:09 UTC (rev 109733)
@@ -5,9 +5,6 @@
 # See 'Tools/qmake/README' for an overview of the build system
 # -------------------------------------------------------------------
 
-# Load results of config tests (only supported in Qt 5)
-haveQt(5): include($${ROOT_BUILD_DIR}/Tools/qmake/.qmake.cache, , true)
-
 CONFIG(minimal) {
     DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0
 }

Modified: trunk/Tools/qmake/mkspecs/features/unix/default_pre.prf (109732 => 109733)


--- trunk/Tools/qmake/mkspecs/features/unix/default_pre.prf	2012-03-05 12:03:53 UTC (rev 109732)
+++ trunk/Tools/qmake/mkspecs/features/unix/default_pre.prf	2012-03-05 13:00:09 UTC (rev 109733)
@@ -6,10 +6,7 @@
 
 load(functions)
 
-# Assume we use GNU make and a non-ancient GCC (compatible)
-# compiler that supports the -MD option. Relies on changes
-# introduced in Qt 5 to work correctly.
-haveQt(5): CONFIG += GNUmake gcc_MD_depends object_parallel_to_source
+haveQt(5): CONFIG += object_parallel_to_source
 
 # Expose if we are building inside Scratchbox
 SBOX_CHECK = $$(_SBOX_DIR)

Modified: trunk/Tools/qmake/sync.profile (109732 => 109733)


--- trunk/Tools/qmake/sync.profile	2012-03-05 12:03:53 UTC (rev 109732)
+++ trunk/Tools/qmake/sync.profile	2012-03-05 13:00:09 UTC (rev 109733)
@@ -1,4 +1,5 @@
 # This file is only used for config tests
 %configtests = (
     fontconfig => {},
+    gccdepends => {},
 );
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to