Wireshark-dev: Re: [Wireshark-dev] Building on Windows

From: Graham Bloice <graham.bloice@xxxxxxxxxxxxx>
Date: Wed, 13 Nov 2019 17:30:15 +0000


On Wed, 13 Nov 2019 at 17:24, Richard Sharpe <realrichardsharpe@xxxxxxxxx> wrote:
On Wed, Nov 13, 2019 at 9:11 AM Graham Bloice
<graham.bloice@xxxxxxxxxxxxx> wrote:
>
>
> On Wed, 13 Nov 2019 at 16:52, Richard Sharpe <realrichardsharpe@xxxxxxxxx> wrote:
>>
>> On Wed, Nov 13, 2019 at 8:45 AM Graham Bloice
>> <graham.bloice@xxxxxxxxxxxxx> wrote:
>> >
>> > On Wed, 13 Nov 2019 at 16:07, Richard Sharpe <realrichardsharpe@xxxxxxxxx> wrote:
>> >>
>> >> Well,
>> >>
>> >> I seem to have gotten further, but then ran into this:
>> >>
>> >> CMake Error at CMakeLists.txt:91 (message): The PLATFORM environment
>> >> variable ([undefined]) doesn't match the generator platform (win64)
>> >>
>> >> I notice that this page:
>> >>
>> >> https://osqa-ask.wireshark.org/questions/56074/cmake-build-fails
>> >>
>> >> discusses the problem and points to the document I was using, but that
>> >> document does not address the PLATFORM environment variable.
>> >>
>> >> While it did not take long to figure the issue out, perhaps it could
>> >> be pre-empted by adding an additional environment variable to the list
>> >> in the documentation.
>> >>
>> >
>> > The Platform env. variable is set by vcvarsall.bat which is what's actually run to make a Command Prompt a "Visual Studio Command Prompt.  Setting it manually is NOT the correct thing to do.  It appears that there's still something wrong in your environment, as I noted on the Ask question you linked where the OP had a similar issue for reasons that were never resolved as they failed to respond.
>>
>> This is what I see when I start the Developer Command Prompt:
>>
>> **********************************************************************
>> ** Visual Studio 2019 Developer Command Prompt v16.3.9
>> ** Copyright (c) 2019 Microsoft Corporation
>> **********************************************************************
>>
>> C:\Users\Richard.Sharpe.A00187\source\repos>set PLATFORM
>> Environment variable PLATFORM not defined
>>
>
> The preliminary output in the prompt is missing the very important line:
>
> [vcvarsall.bat] Environment initialized for: 'x64'
>
> which shows that vcvarsall.bat was called and set the Platform env. var.  This indicates something still isn't right about your environment.  What do you have in "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\"?

It's all there. If I run the x86_64 Cross Tools Command Prompt for VS
2019 I get this:

[vcvarsall.bat] Environment initialized for: 'x86_x64'

It seems that Microsoft have just muddied the waters a bit.


Normally (as in the half dozen or so systems I have checked on) you would have:

07/10/2019  10:18                13 Microsoft.VCRedistVersion.default.txt
07/10/2019  10:18               401 Microsoft.VCToolsVersion.default.props
07/10/2019  10:18                13 Microsoft.VCToolsVersion.default.txt
07/10/2019  10:18               401 Microsoft.VCToolsVersion.v142.default.props
07/10/2019  10:18                13 Microsoft.VCToolsVersion.v142.default.txt
13/11/2019  15:18                39 vcvars32.bat
13/11/2019  15:18                39 vcvars64.bat
07/10/2019  10:18             9,859 vcvarsall.bat
13/11/2019  15:18                43 vcvarsamd64_x86.bat
13/11/2019  15:18                43 vcvarsx86_amd64.bat 

Where the vcvarsall.bat batch file is the main file for setting up the toolchain and the smaller ones just call that with the appropriate parameter for Native x86 or x64 or cross compilation.

--
Graham Bloice