From ff72ae9ce3b1462c0ea38cafe692e57493d630e7 Mon Sep 17 00:00:00 2001 From: Alexei Lozovsky Date: Sat, 8 May 2021 17:14:35 +0900 Subject: [PATCH] Update usage examples (#36) * Use newer actions/checkout@v2 in examples That's the current version. Even our own build scripts use it. * Correct actions syntax By the way, it's been ages since steps get their own section... * Provide an example with matrix Finally, have some example to showcase input usage. * Move inputs after examples Since they are more useful, put copy-pastable examples first. Then you can look at all available inputs, now that you know how to use them. --- README.md | 61 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 7acc9c9..0e6ec0c 100644 --- a/README.md +++ b/README.md @@ -8,14 +8,57 @@ This sets up the environment for compiling C/C++ code from command line. Supports Windows. Does nothing on Linux and macOS. +## Example usage + +Basic usage for default compilation settings is like this: + +```yaml +jobs: + test: + steps: + - uses: actions/checkout@v2 + - uses: ilammy/msvc-dev-cmd@v1 + - name: Build something requiring CL.EXE + run: | + cmake -G "NMake Makefiles" . + nmake + # ... +``` + +If you want something non-default, +like using a specific version of Visual Studio, +or cross-compling for a differen target, +you will need to configure those settings via inputs: + +```yaml +jobs: + test: + # Run a job for each of the specified target architectures: + strategy: + matrix: + arch: + - amd64 + - amd64_x86 + - amd64_arm64 + steps: + - uses: actions/checkout@v2 + - uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.arch }} + - name: Build something requiring CL.EXE + run: | + cmake -G "NMake Makefiles" . + nmake + # ... +``` + ## Inputs - `arch` – target architecture - 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` + - 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`) @@ -28,20 +71,6 @@ Supports Windows. Does nothing on Linux and macOS. - `uwp` – set `true` to build for Universal Windows Platform (i.e., for Windows Store) - `spectre` – set `true` to use Visual Studio libraries with [Spectre](https://meltdownattack.com) mitigations -## Example usage - -```yaml -jobs: - test: - - uses: actions/checkout@v1 - - uses: ilammy/msvc-dev-cmd@v1 - - name: Build something requiring CL.EXE - run: | - cmake -G "NMake Makefiles" . - nmake - # ... -``` - ## Caveats ### Name conflicts with `shell: bash`