Wireshark-dev: Re: [Wireshark-dev] Error when running "nmake -f makefile.nmake packaging" on wi
From: Graham Bloice <graham.bloice@xxxxxxxxxxxxx>
Date: Mon, 11 Aug 2014 14:17:39 +0100
On 11 August 2014 13:45, Anders Broman <anders.broman@xxxxxxxxxxxx> wrote:

 

 

From: 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> 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.


--
Graham Bloice
Software Developer
Trihedral UK Limited