Skip to content

Commit

Permalink
msvc-dev-cmd v1.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
ilammy committed Mar 7, 2021
2 parents 3765150 + 6f493f9 commit 24b406e
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 12 deletions.
23 changes: 19 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,9 @@ jobs:
test:
name: default
runs-on: windows-latest
strategy:
fail-fast: false
steps:
- name: Check out source code
uses: actions/checkout@v1
uses: actions/checkout@v2
- name: Download Internet
run: npm install
- name: Enable Developer Command Prompt
Expand All @@ -32,6 +30,23 @@ jobs:
runs-on: windows-latest
steps:
- name: Check out source code
uses: actions/checkout@v1
uses: actions/checkout@v2
- run: npm install
- run: npm audit --audit-level=moderate
alias-arch:
name: arch aliases
runs-on: windows-latest
steps:
- name: Check out source code
uses: actions/checkout@v2
- name: Download Internet
run: npm install
- name: Enable Developer Command Prompt
uses: ./
with:
arch: Win32
- name: Compile and run some C code
shell: cmd
run: |
cl.exe hello.c
hello.exe
6 changes: 2 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,11 @@ jobs:
test:
name: release
runs-on: windows-latest
strategy:
fail-fast: false
steps:
- name: Setup Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1
- name: Check out source code
uses: actions/checkout@v1
uses: actions/checkout@v2
- name: Compile and run some C code
shell: cmd
run: |
Expand All @@ -28,5 +26,5 @@ jobs:
runs-on: windows-latest
steps:
- name: Check out source code
uses: actions/checkout@v1
uses: actions/checkout@v2
- run: npm audit --audit-level=moderate
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ Supports Windows. Does nothing on Linux and macOS.
## Inputs

- `arch` – target architecture
- native compilation: `x86`, `x64` (default), `amd64` (synonym for x64)
- native compilation:
- `x64` (default) or its synonyms: `amd64`, `win64`
- `x86` or its synonyms: `win32`
- cross-compilation: `x86_amd64`, `x86_arm`, `x86_arm64`,
`amd64_x86`, `amd64_arm`, `amd64_arm64`
- `sdk` – Windows SDK to use
Expand Down
31 changes: 30 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,23 @@ function main() {
// Add standard location of "vswhere" to PATH, in case it's not there.
process.env.PATH += path.delimiter + VSWHERE_PATH

const arch = core.getInput('arch')
var arch = core.getInput('arch')
const sdk = core.getInput('sdk')
const toolset = core.getInput('toolset')
const uwp = core.getInput('uwp')
const spectre = core.getInput('spectre')

// There are all sorts of way the architectures are called. In addition to
// values supported by Microsoft Visual C++, recognize some common aliases.
let arch_aliases = {
"win32": "x86",
"win64": "x64",
}
// Ignore case when matching as that's what humans expect.
if (arch.toLowerCase() in arch_aliases) {
arch = arch_aliases[arch.toLowerCase()]
}

// Due to the way Microsoft Visual C++ is configured, we have to resort to the following hack:
// Call the configuration batch file and then output *all* the environment variables.

Expand All @@ -104,6 +115,24 @@ function main() {
core.debug(`Running: ${command}`)
const environment = child_process.execSync(command, {shell: "cmd"}).toString().split('\r\n')

// If vsvars.bat is given an incorrect command line, it will print out
// an error and *still* exit successfully. Parse out errors from output
// which don't look like environment variables, and fail if appropriate.
var failed = false
for (let line of environment) {
if (line.match(/^\[ERROR.*\]/)) {
failed = true
// Don't print this particular line which will be confusing in output.
if (line.match(/Error in script usage. The correct usage is:$/)) {
continue
}
core.error(line)
}
}
if (failed) {
throw new Error('invalid parameters')
}

for (let string of environment) {
const [name, value] = string.split('=')
for (let pattern of InterestingVariables) {
Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "msvc-dev-cmd",
"version": "1.5.0",
"version": "1.6.0",
"description": "GitHub Action to setup Developer Command Prompt for Microsoft Visual C++",
"main": "index.js",
"scripts": {
Expand Down

0 comments on commit 24b406e

Please sign in to comment.