On Thu, 6 May 2021 20:39:11 GMT, John Neffenger <jgn...@openjdk.org> wrote:

> The Windows build calls a series of batch files to get the Visual Studio 
> paths and environment variables. The batch files are a black box: any 
> messages they print are discarded. If anything goes wrong, the only signs are 
> a vague Gradle exception and a corrupted properties file.
> 
> This has been causing problems for years. There are at least 49 messages on 
> the mailing since 2017 that discuss the exception and ways to work around it.
> 
> This pull request lets you enable the batch file messages, shedding light on 
> their internal workings and allowing you to catch any errors at their source. 
> Specifically, it adds the variable `VSCMD_DEBUG` to the environment of 
> `genVSproperties.bat` and documents its use.
> 
> ### Before
> 
> For example, if your `PATH` environment variable is missing 
> `C:/Windows/System32`, like mine was, you'll see the following errors:
> 
> 
> $ gradle sdk
> Dependency verification is an incubating feature.
> 
> FAILURE: Build failed with an exception.
> 
> * Where:
> Script 'C:\cygwin64\home\john\src\jfx\buildSrc\win.gradle' line: 108
> 
> * What went wrong:
> A problem occurred evaluating script.
>> FAIL: WINSDK_DIR not defined
> 
>     ︙
> 
> BUILD FAILED in 4s
> 
> 
> *Me:* What's a `WINSDK_DIR`? The Wiki says, "This means that you will have to 
> define these paths manually." I guess this is normal. 😕️
> 
> ### After
> 
> With this change, you can set the debug level to "3" in the `win.gradle` file 
> and get a better picture of the problem:
> 
> 
> $ gradle sdk
> Dependency verification is an incubating feature.
> 
>> Configure project :
> 'reg' is not recognized as an internal or external command,
> operable program or batch file.
> 'reg' is not recognized as an internal or external command,
> operable program or batch file.
> 'reg' is not recognized as an internal or external command,
> operable program or batch file.
> 
>     ︙
> 
> 'powershell.exe' is not recognized as an internal or external command,
> operable program or batch file.
> 
> FAILURE: Build failed with an exception.
> 
> * Where:
> Script 'C:\cygwin64\home\john\src\jfx\buildSrc\win.gradle' line: 108
> 
> * What went wrong:
> A problem occurred evaluating script.
>> FAIL: WINSDK_DIR not defined
> 
>     ︙
> 
> BUILD FAILED in 3s
> 
> 
> *Me:* Oh, it's just a "command not found" error. I'll check my `PATH`. 🤓

It would be more convenient to ask the developer set `VSCMD_DEBUG` via an env 
variable, rather than asking them to edit `win.gradle`. That way, the 
instructions would be:


    export VSCMD_DEBUG=3
    export VSCMD_SKIP_SENDTELEMETRY=1
    gradle

-------------

PR: https://git.openjdk.java.net/jfx/pull/488

Reply via email to