Wireshark-dev: Re: [Wireshark-dev] Error when running "nmake -f makefile.nmake packaging" on wi
From: Anders Broman <[email protected]>
Date: Mon, 11 Aug 2014 12:45:12 +0000

 

 

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"

PS C:\xxx\trunk> windeployqt --release --no-compiler-runtime --list relative wireshark-qt-release\qtshark.exe

The term 'windeployqt' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was

included, verify that the path is correct and try again.

At line:1 char:12

+ windeployqt <<<<  --release --no-compiler-runtime --list relative wireshark-q

t-release\qtshark.exe

    + CategoryInfo          : ObjectNotFound: (windeployqt:String) [], Command

   NotFoundException

    + FullyQualifiedErrorId : CommandNotFoundException

 

Just running the command without parameters and the full path gives

PS C:\xxx\trunk> C:\Qt\Qt5.2.1\5.2.1\msvc2012_64\bin\windeployqt.exe

Please specify the binary or folder.

 

Usage: C:\Qt\Qt5.2.1\5.2.1\msvc2012_64\bin\windeployqt.exe [options] [file]

Qt Deploy Tool 5.2.1

 

Options:

  -?, -h, --help            Displays this help.

  -v, --version             Displays version information.

  --dir <directory>         Use directory instead of binary directory.

  --libdir <path>           Copy libraries to path.

  --force                   Force updating files.

  --no-plugins              Skip plugin deployment.

  --no-libraries            Skip library deployment.

  --qmldir <directory>      Scan for QML-imports starting from directory.

  --no-quick-import         Skip deployment of Qt Quick imports.

  --no-translations         Skip deployment of translations.

  --no-system-d3d-compiler  Skip deployment of the system D3D compiler.

  --webkit2                 Deployment of WebKit2 (web process).

  --no-webkit2              Skip deployment of WebKit2.

  --json                    Print to stdout in JSON format.

  --verbose <level>         Verbose level.

  --bluetooth               Add Qt5Bluetooth module.

  --no-bluetooth            Remove Qt5Bluetooth module.

  --clucene                 Add Qt5CLucene module.

  --no-clucene              Remove Qt5CLucene module.

  --concurrent              Add Qt5Concurrent module.

  --no-concurrent           Remove Qt5Concurrent module.

 

Qt libraries can be added by passing their name (-xml) or removed by passing

the name prepended by --no- (--no-xml). Available libraries:

bluetooth clucene concurrent core declarative designercomponents designer gui

clucene qthelp multimedia multimediawidgets network nfc opengl positioning

printsupport qml quick quickparticles script scripttools sensors serialport sql

svg test widgets winextras xml xmlpatterns webkit

 

Arguments:

  [file]                    Binary or directory containing the binary.

 

/Anders