RFR: 8289174: JavaFX build fails on Windows when VS150COMNTOOLS is not set [v3]
Nir Lisker
nlisker at openjdk.org
Tue Aug 13 15:28:56 UTC 2024
On Mon, 12 Aug 2024 21:31:49 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:
>> 1. Added logic to look in the standard locations for Visual Studio 2022, with a fallback to 2019 and then 2017 if 2022 is not found. It will look in the following locations:
>>
>> C:("Program Files"|"Program Files (x86)")\Microsoft Visual Studio(2022|2019|2017)\
>> (Enterprise|Professional|Community)\VC\Auxiliary\Build
>>
>> 2. Use `VSCOMNTOOLS` as the primary way for a developer to specify a custom location for Visual Studio, with `VS150COMNTOOLS` as a legacy fallback (a warning is printed if `VS150COMNTOOLS` is set). If a developer installs Visual Studio in the default location, there will be no need to set this any more.
>> 3. Removed support for older compilers (VS2010 and VS2013 in particular), since they will no longer work anyway. We were still using the 32-bit version of the script in many cases, which is unnecessary and no longer makes sense, so as part of this cleanup, I now consistently use `vcvars64.bat` to set up the environment.
>> 4. Modified the GitHub actions build to no longer specify `VS150COMNTOOLS`, since it will now find it automatically.
>> 5. Removed the following unused variables:
>>
>> DEVENVCMD
>> DXSDK_DIR
>> VS_VER
>>
>> 6. Changed most of the defaults in `win.gradle` to the empty string. The defaults were a misguided attempt to set values to something in case the Visual Studio installation cannot be found. By not having defaults, it will be more obvious if something goes wrong (and will fail fast).
>> 7. If the Visual Studio Installation cannot be found, it will print a sensible error message and retry the next time the build is run (making it less likely that a manual `rm -rf build` is needed).
>> 8. Fixed a bug where the Microsoft redist files were not being located and copied into the build dir (build/sdk/bin).
>>
>>
>> I left some debug print statements in, and will remove them in a follow-on commit.
>>
>> I have tested this with a local installation of Visual Studio 2022 Community and, via GitHub Actions, an installation of Visual Studio 2022 Enterprise. On my local system, I built with and without Media and WebKit.
>
> Kevin Rushforth has updated the pull request incrementally with one additional commit since the last revision:
>
> Review comments
Continuing from https://github.com/openjdk/jfx/pull/1333#issuecomment-2286427951, I updated my VS and did a clean build on `master` and got
> java.util.concurrent.ExecutionException: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx64/x64/cl.exe''
After applying this patch, my clean build was successful (up to the webkit part). I then removed the `VS150COMNTOOLS` env var and tried another clean build and it worked as well.
Tested on Windows 10.
-------------
Marked as reviewed by nlisker (Reviewer).
PR Review: https://git.openjdk.org/jfx/pull/1534#pullrequestreview-2235891455
More information about the openjfx-dev
mailing list