Wireshark-dev: Re: [Wireshark-dev] Error when running "nmake -f makefile.nmake packaging" on wi
On 8/11/14 7:53 AM, Graham Bloice wrote:
> On 11 August 2014 15:21, Anders Broman <anders.broman@xxxxxxxxxxxx
> <mailto:anders.broman@xxxxxxxxxxxx>> wrote:
>
> __ __
>
> __ __
>
> *From:*wireshark-dev-bounces@xxxxxxxxxxxxx
> <mailto:wireshark-dev-bounces@xxxxxxxxxxxxx>
> [mailto:wireshark-dev-bounces@xxxxxxxxxxxxx
> <mailto:wireshark-dev-bounces@xxxxxxxxxxxxx>] *On Behalf Of *Graham
> Bloice
> *Sent:* den 11 augusti 2014 15:18
>
>
> *To:* Developer support list for Wireshark
> *Subject:* Re: [Wireshark-dev] Error when running "nmake -f
> makefile.nmake packaging" on win7 64 with MSVC 2012____
>
> __ __
>
> On 11 August 2014 13:45, Anders Broman <anders.broman@xxxxxxxxxxxx
> <mailto:anders.broman@xxxxxxxxxxxx>> wrote:____
>
> ____
>
> ____
>
> *From:*wireshark-dev-bounces@xxxxxxxxxxxxx
> <mailto:wireshark-dev-bounces@xxxxxxxxxxxxx>
> [mailto:wireshark-dev-bounces@xxxxxxxxxxxxx
> <mailto:wireshark-dev-bounces@xxxxxxxxxxxxx>] *On Behalf Of *Graham
> Bloice
> *Sent:* den 11 augusti 2014 14:04____
>
>
> *To:* Developer support list for Wireshark
> *Subject:* Re: [Wireshark-dev] Error when running "nmake -f
> makefile.nmake packaging" on win7 64 with MSVC 2012____
>
> ____
>
> On 11 August 2014 11:51, Anders Broman <anders.broman@xxxxxxxxxxxx
> <mailto:anders.broman@xxxxxxxxxxxx>> wrote:____
>
> Invalid command: Split-Path____
>
> !include: error in script: "qt-dll-manifest.nsh" on line 1____
>
> Error in script "wireshark.nsi" on line 791 -- aborting creation
> process____
>
> ____
>
> qt-dll-manifest.nsh:____
>
> ____
>
> Split-Path : Cannot bind argument to parameter 'Path' because it is
> null.____
>
> At C:\xxx\trunk\packaging\nsis\windeployqt-to-nsis.ps1:23 char:22____
>
> + $dir = Split-Path <<<< -Parent $entry____
>
> + CategoryInfo : InvalidData: (:) [Split-Path],
> ParameterBindingV ____
>
> alidationException____
>
> + FullyQualifiedErrorId :
> ParameterArgumentValidationErrorNullNotAllowed,M ____
>
> icrosoft.PowerShell.Commands.SplitPathCommand____
>
> File "..\..\wireshark-qt-release\"____
>
> File /r "..\..\wireshark-qt-release\"____
>
> ____
>
> Ideas?____
>
> ____
>
> Regards____
>
> Anders____
>
> ____
>
>
> ____
>
> ____
>
> packagins\nsis\Makefile.nmake calls windeployqt-to-nsis.ps1 to
> create the qt-dll-manifest.nsh file listing all the qt dlls required
> for the installer.____
>
> ____
>
> In the script, windeployqt is called to return the list of DLL's and
> then on Line 23 of the script calls split-path to get the path
> component of the DLL. From the error it seems that one of the
> entries is null.____
>
> ____
>
> Try this:____
>
> ____
>
> In a Powershell prompt at your top level source directory:____
>
> ____
>
> <code>____
>
> $env:Path += ";PATH\TO\QT\BIN"____
>
> windeployqt --release --no-compiler-runtime --list relative
> wireshark-qt-release\qtshark.exe____
>
> </code>____
>
> ____
>
> -- ____
>
> Graham Bloice____
>
> ____
>
> Hi,____
>
> Not sure I got I right:____
>
> ____
>
> C:\xxx\trunk>powershell____
>
> Windows PowerShell____
>
> Copyright (C) 2009 Microsoft Corporation. All rights reserved.____
>
> ____
>
> PS C:\xxx\trunk> $env:path+="C:\Qt\Qt5.2.1\5.2.1\msvc2012_64\bin"____
>
> __ __
>
> Looks like you've missed the ";" path separator that should be at
> the front of the string. Start with a new PS prompt (as you've
> broken the path in that one) and try again.____
>
> __ __
>
> I'd really like to see what that 5.2.1 windeployqt gives out, but as
> the others have said, windeployqt in < 5.3.x looks to be broken.____
>
> __ __
>
> Argh, Yes of course:____
>
> __ __
>
> PS C:\xxx\trunk> $env:path+=";C:\Qt\Qt5.2.1\5.2.1\msvc2012_64\bin"____
>
> PS C:\xxx\trunk> windeployqt --release --no-compiler-runtime --list
> rela____
>
> tive wireshark-qt-release\qtshark.exe____
>
> Unknown options: release, no-compiler-runtime, list.____
>
> __ __
>
> So now we are getting to the problem Alexis pointed out; windeployqt
> does not have the same parameter sets in Qt 5.2.1____
>
> >...). or simply upgrade to Qt 5.3 :)____
>
> Last time I checked there was no Qt 5.3 for MSVC 2012, MSVC 2013
> requires IE version(something) which I don’t have and I have a
> company____
>
> Win7 version which I can’t (easily any way) influence the version of
> the components…____
>
> __ __
>
>
>
> Yes, I think for Qt < 5.3 we need to fallback to some other scheme, i.e.
> a hard-coded list of DLL's.
Is there a way to get nmake to compare version strings? We can get the
Qt version easily enough using `qmake -query QT_VERSION`. Otherwise
we'll probably have to add more DLL checks to
packaging/nsis/Makefile.nmake. According to the release notes
Qt5WebSockets.dll was added in 5.3. Although I suppose another
alternative might be to move the Qt version detection logic from
packaging/nsis/Makefile.nmake to windeployqt-to-nsis.