Wireshark mailing list archives

Re: Error when running "nmake -f makefile.nmake packaging" on win7 64 with MSVC 2012


From: Graham Bloice <graham.bloice () trihedral com>
Date: Mon, 11 Aug 2014 17:58:37 +0100

On 11 August 2014 17:19, Gerald Combs <gerald () wireshark org> wrote:

On 8/11/14 7:53 AM, Graham Bloice wrote:
On 11 August 2014 15:21, Anders Broman <anders.broman () ericsson com
<mailto:anders.broman () ericsson com>> wrote:

    __ __

    __ __

    *From:*wireshark-dev-bounces () wireshark org
    <mailto:wireshark-dev-bounces () wireshark org>
    [mailto:wireshark-dev-bounces () wireshark org
    <mailto:wireshark-dev-bounces () wireshark org>] *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 () ericsson com
    <mailto:anders.broman () ericsson com>> wrote:____

     ____

     ____

    *From:*wireshark-dev-bounces () wireshark org
    <mailto:wireshark-dev-bounces () wireshark org>
    [mailto:wireshark-dev-bounces () wireshark org
    <mailto:wireshark-dev-bounces () wireshark org>] *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 () ericsson com
    <mailto:anders.broman () ericsson com>> 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.


I think that sort of thing is difficult in nmake, it can't pick up return
values from external programs, so moving it to the PS script is probably
the best idea.  That will also work with CMake then.

-- 
Graham Bloice
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe

Current thread: