RFR: 8289174: JavaFX build fails on Windows when VS150COMNTOOLS is not set

Kevin Rushforth kcr at openjdk.org
Mon Aug 12 14:37:11 UTC 2024


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.

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

Commit messages:
 - Remove obsolete check for VS_VER in jfxmedia Makefile
 - Remove illegal char from 'REM' comment
 - Print deprecation warning if VS150COMNTOOLS is used
 - Add MSVCDIR back in
 - Add debug prints
 - 8289174: JavaFX build fails on Windows when VS150COMNTOOLS is not set

Changes: https://git.openjdk.org/jfx/pull/1534/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1534&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8289174
  Stats: 191 lines in 5 files changed: 60 ins; 79 del; 52 mod
  Patch: https://git.openjdk.org/jfx/pull/1534.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1534/head:pull/1534

PR: https://git.openjdk.org/jfx/pull/1534


More information about the openjfx-dev mailing list