Wireshark-dev: Re: [Wireshark-dev] Error when running "nmake -f makefile.nmake packaging" on wi
From: Graham Bloice <[email protected]>
Date: Mon, 11 Aug 2014 15:53:25 +0100
On 11 August 2014 15:21, Anders Broman <[email protected]> wrote:

 

 

From: [email protected] [mailto:[email protected]] 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 <[email protected]> wrote:

 

 

From: [email protected] [mailto:[email protected]] 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 <[email protected]> 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.

Maybe you could compile Qt 5.3.1 yourself to get a VS2012 compatible version :-)


--
Graham Bloice
Software Developer
Trihedral UK Limited