[Qt] The ANGLE build on Windows breaks with GnuWin32's flex because it is too old
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Sep 2012 08:54:29 +0000 (08:54 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Sep 2012 08:54:29 +0000 (08:54 +0000)
https://bugs.webkit.org/show_bug.cgi?id=96359

Patch by Simon Hausmann <simon.hausmann@nokia.com> on 2012-09-13
Reviewed by Tor Arne Vestbø.

GnuWin32's flex is 2.5.4 and that is too old for ANGLE's preprocessor
lexer. The only viable alternative I could find on Windows that provides
binaries is the winflexbison distribution (http://sourceforge.net/projects/winflexbison/),
so let's use that one instead.

Source/ThirdParty/ANGLE:

* DerivedSources.pri:

Tools:

* Scripts/webkitdirs.pm:
(checkRequiredSystemConfig):
* qmake/mkspecs/features/default_pre.prf:

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

Source/ThirdParty/ANGLE/ChangeLog
Source/ThirdParty/ANGLE/DerivedSources.pri
Tools/ChangeLog
Tools/Scripts/webkitdirs.pm
Tools/qmake/mkspecs/features/default_pre.prf

index d1acdb1..de8722a 100644 (file)
@@ -1,3 +1,17 @@
+2012-09-13  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        [Qt] The ANGLE build on Windows breaks with GnuWin32's flex because it is too old
+        https://bugs.webkit.org/show_bug.cgi?id=96359
+
+        Reviewed by Tor Arne Vestbø.
+
+        GnuWin32's flex is 2.5.4 and that is too old for ANGLE's preprocessor
+        lexer. The only viable alternative I could find on Windows that provides
+        binaries is the winflexbison distribution (http://sourceforge.net/projects/winflexbison/),
+        so let's use that one instead.
+
+        * DerivedSources.pri:
+
 2012-09-12  Simon Hausmann  <simon.hausmann@nokia.com>
 
         [Qt] Build on Windows requires bison/flex in PATH
index 04ae8c1..b3a89fc 100644 (file)
@@ -17,7 +17,7 @@ ANGLE_FLEX_SOURCES = \
 
 angleflex.output = ${QMAKE_FILE_BASE}_lex.cpp
 angleflex.input = ANGLE_FLEX_SOURCES
-angleflex.commands = flex --noline --nounistd --outfile=${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
+angleflex.commands = $$FLEX --noline --nounistd --outfile=${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
 GENERATORS += angleflex
 
 ANGLE_BISON_SOURCES = \
index bcda548..818a2e0 100644 (file)
@@ -1,5 +1,21 @@
 2012-09-13  Simon Hausmann  <simon.hausmann@nokia.com>
 
+        [Qt] The ANGLE build on Windows breaks with GnuWin32's flex because it is too old
+        https://bugs.webkit.org/show_bug.cgi?id=96359
+
+        Reviewed by Tor Arne Vestbø.
+
+        GnuWin32's flex is 2.5.4 and that is too old for ANGLE's preprocessor
+        lexer. The only viable alternative I could find on Windows that provides
+        binaries is the winflexbison distribution (http://sourceforge.net/projects/winflexbison/),
+        so let's use that one instead.
+
+        * Scripts/webkitdirs.pm:
+        (checkRequiredSystemConfig):
+        * qmake/mkspecs/features/default_pre.prf:
+
+2012-09-13  Simon Hausmann  <simon.hausmann@nokia.com>
+
         [Qt] Add configuration for production builds
         https://bugs.webkit.org/show_bug.cgi?id=96607
 
index c89d3ad..f1c82b9 100755 (executable)
@@ -1542,7 +1542,12 @@ sub checkRequiredSystemConfig
             print "*************************************************************\n";
         }
     } elsif (isGtk() or isQt() or isWx() or isEfl()) {
-        my @cmds = qw(flex bison gperf);
+        my @cmds = qw(bison gperf);
+        if (isQt() and isWindows()) {
+            push @cmds, "win_flex";
+        } else {
+            push @cmds, "flex";
+        }
         my @missing = ();
         my $oldPath = $ENV{PATH};
         if (isQt() and isWindows()) {
index 8f696ba..fb87fac 100644 (file)
@@ -108,3 +108,8 @@ isEmpty(SQLITE3SRCDIR) {
     SQLITE3SRCDIR = $$QT.core.sources/../3rdparty/sqlite/
 }
 
+# A newer version of flex is required on Windows. At the moment the only
+# one that appears to provide binaries and is not cygwin is winflex.
+FLEX = flex
+win32: FLEX = win_flex
+