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`