Bug 98645 - [Qt] Build with MSVC fails to use nmake instead of make
Summary: [Qt] Build with MSVC fails to use nmake instead of make
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Hausmann
URL:
Keywords: Qt
Depends on:
Blocks:
 
Reported: 2012-10-08 06:33 PDT by Zoltan Arvai
Modified: 2012-11-09 01:51 PST (History)
6 users (show)

See Also:


Attachments
Patch (1.60 KB, patch)
2012-11-08 03:51 PST, Simon Hausmann
no flags Details | Formatted Diff | Diff
Patch (1.59 KB, patch)
2012-11-08 04:05 PST, Simon Hausmann
vestbo: review+
webkit.review.bot: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Zoltan Arvai 2012-10-08 06:33:48 PDT
After switching MSVC build to Qt5-r37 (749b83f337ec82eff305ed8ac85473ad984c84fa) a build error occurred:

WebKit is now configured for building. Just run 'make'.
Last built revision was unknown, now at revision 130570. Full incremental build needed.
Calling 'make  -j8 incremental' in C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\WebKitBuild\Release
'make' is not recognized as an internal or external command,
operable program or batch file.

Wrong make command is used. It should be nmake instead of make.

The problem caused by qmake.conf and webkitdirs.pm.

Qt5.0.0-r37-angle\mkspecs\default\qmake.conf contains:
QMAKESPEC_ORIGINAL = C:/WebKitBuildSlave/Qt5.0.0-r37-source/qt5/qtbase/mkspecs/win32-msvc2010
include($$QMAKESPEC_ORIGINAL/qmake.conf)

WebKit\Tools\Scripts\webkitdirs.pm contains a function called retrieveQMakespecVar. 
This function parses qmake.conf. It can follow includes, but it can not resolve variables.

The workaround for this issue is changing qmake.conf to the old value:
QMAKESPEC_ORIGINAL = C:/WebKitBuildSlave/Qt5.0.0beta1-source/qt5/qtbase/mkspecs/win32-msvc2010
include(../win32-msvc2010/qmake.conf)
Comment 1 Simon Hausmann 2012-11-08 03:51:48 PST
Created attachment 173000 [details]
Patch
Comment 2 Simon Hausmann 2012-11-08 04:05:15 PST
Created attachment 173003 [details]
Patch
Comment 3 Csaba Osztrogonác 2012-11-08 04:13:36 PST
It is fixed in Qt - https://bugreports.qt-project.org/browse/QTBUG-27593
So I think we won't need this fix after we use fixed Qt.
Comment 4 Simon Hausmann 2012-11-08 04:19:24 PST
(In reply to comment #3)
> It is fixed in Qt - https://bugreports.qt-project.org/browse/QTBUG-27593
> So I think we won't need this fix after we use fixed Qt.

This is exactly what this patch builds on :). No more default/ but instead the mkspec is coded "into" qmake. We now query it out of qmake with -query QMAKE_XMKSPEC.
Comment 5 WebKit Review Bot 2012-11-08 08:38:11 PST
Comment on attachment 173003 [details]
Patch

Rejecting attachment 173003 [details] from commit-queue.

New failing tests:
fast/repaint/selection-after-delete.html
Full output: http://queues.webkit.org/results/14755937
Comment 6 Simon Hausmann 2012-11-09 00:37:08 PST
Committed r134024: <http://trac.webkit.org/changeset/134024>
Comment 7 Csaba Osztrogonác 2012-11-09 01:33:03 PST
It broke our Windows bot:

Calling 'make  -j8 incremental' in C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\WebKitBuild\Release

'make' is not recognized as an internal or external command,
operable program or batch file.


Zoltán, could you check it? Maybe the workaround and this patch conflicts.
Comment 8 Simon Hausmann 2012-11-09 01:51:40 PST
Submitted http://trac.webkit.org/changeset/134032 to accomodate older Qt versions that don't support QMAKE_XSPEC yet but instead do install a "default" folder.