Alexei Lozovsky 840499b504 Avoid slow "vswhere" calls (#14)
Recently added Visual Studio location with "vswhere" seems to be very
slow when using "-find" with path patterns. As in, 5 minutes slow.

vswhere does not provide much insight into why this happens, but I guess
that's because filesystem operations (and search in particular) are not
very fast on Windows.

Improve the search performance by combining vswhere with probing. Use
vswhere to locate the installation root, and then probe around for the
batch script we need.

Also, don't use vswhere for Visual Studio 2015 as it does not seem to
work. Rely only on probing here.

And also, add some debug logs so that it's possible to track which path
has been used, if you're interested in it.
2020-10-03 17:51:55 +03:00
2019-10-01 22:15:47 +03:00
2019-10-01 22:15:47 +03:00
2019-10-01 22:15:47 +03:00
2019-10-02 00:53:54 +03:00
2020-10-03 17:51:55 +03:00
2019-10-01 22:15:47 +03:00
2020-03-19 09:03:19 +02:00
2019-10-02 00:59:07 +03:00

GitHub Actions status

msvc-dev-cmd

GitHub Action for configuring Developer Command Prompt for Microsoft Visual C++.

This sets up the environment for compiling C/C++ code from command line.

Supports Windows. Does nothing on Linux and macOS.

Inputs

  • arch target architecture
    • native compilation: x86, x64 (default), amd64 (synonym for x64)
    • cross-compilation: x86_amd64, x86_arm, x86_arm64, amd64_x86, amd64_arm, amd64_arm64
  • sdk Windows SDK to use
    • do not specify to use the default SDK
    • or specify full Windows 10 SDK number (e.g, 10.0.10240.0)
    • or write 8.1 to use Windows 8.1 SDK
  • toolset select VC++ compiler toolset version
    • do not specify to use the default toolset
    • 14.0 for VC++ 2015 Compiler Toolset
    • 14.XX for the latest 14.XX toolset installed (e.g, 14.11)
    • 14.XX.YYYYY for a specific full version number (e.g, 14.11.25503)
  • uwp set true to build for Universal Windows Platform (i.e., for Windows Store)
  • spectre set true to use Visual Studio libraries with Spectre mitigations

Example usage

jobs:
  test:
    - uses: actions/checkout@v1
    - uses: ilammy/msvc-dev-cmd@v1
    - name: Build something requiring CL.EXE
      run: |
        cmake -G "NMake Makefiles" .
        nmake
    # ...

License

MIT, see LICENSE.

S
Description
Languages
JavaScript 98.9%
C 1.1%