diff options
Diffstat (limited to 'contrib/SDL-3.2.8/.github/actions/setup-msvc-libusb/action.yml')
| -rw-r--r-- | contrib/SDL-3.2.8/.github/actions/setup-msvc-libusb/action.yml | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/contrib/SDL-3.2.8/.github/actions/setup-msvc-libusb/action.yml b/contrib/SDL-3.2.8/.github/actions/setup-msvc-libusb/action.yml new file mode 100644 index 0000000..cbbf098 --- /dev/null +++ b/contrib/SDL-3.2.8/.github/actions/setup-msvc-libusb/action.yml | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | name: 'Setup libusb for MSVC' | ||
| 2 | description: 'Download libusb sdk for MSVC, and set output/environment variables' | ||
| 3 | inputs: | ||
| 4 | version: | ||
| 5 | description: 'libusb version' | ||
| 6 | required: true | ||
| 7 | default: '1.0.27' | ||
| 8 | arch: | ||
| 9 | description: "libusb architecture (x86 or x64)" | ||
| 10 | rqeuired: true | ||
| 11 | outputs: | ||
| 12 | root: | ||
| 13 | description: "libusb root directory" | ||
| 14 | value: ${{ steps.final.outputs.root }} | ||
| 15 | runs: | ||
| 16 | using: 'composite' | ||
| 17 | steps: | ||
| 18 | - name: 'Restore cached libusb-${{ inputs.version }}.7z' | ||
| 19 | id: cache-restore | ||
| 20 | uses: actions/cache/restore@v4 | ||
| 21 | with: | ||
| 22 | path: 'C:\temp\libusb-${{ inputs.version }}.7z' | ||
| 23 | key: libusb-msvc-${{ inputs.version }} | ||
| 24 | - name: 'Download libusb ${{ inputs.version }}' | ||
| 25 | if: ${{ !steps.cache-restore.outputs.cache-hit }} | ||
| 26 | shell: pwsh | ||
| 27 | run: | | ||
| 28 | Invoke-WebRequest "https://github.com/libusb/libusb/releases/download/v${{ inputs.version }}/libusb-${{ inputs.version }}.7z" -OutFile "C:\temp\libusb-${{ inputs.version }}.7z" | ||
| 29 | - name: 'Cache libusb-${{ inputs.version }}.7z' | ||
| 30 | if: ${{ !steps.cache-restore.outputs.cache-hit }} | ||
| 31 | uses: actions/cache/save@v4 | ||
| 32 | with: | ||
| 33 | path: 'C:\temp\libusb-${{ inputs.version }}.7z' | ||
| 34 | key: libusb-msvc-${{ inputs.version }} | ||
| 35 | - name: 'Extract libusb' | ||
| 36 | shell: pwsh | ||
| 37 | run: | | ||
| 38 | 7z "-oC:\temp\libusb-${{ inputs.version }}" x "C:\temp\libusb-${{ inputs.version }}.7z" | ||
| 39 | - name: 'Set output vars' | ||
| 40 | id: final | ||
| 41 | shell: pwsh | ||
| 42 | run: | | ||
| 43 | if ('${{ inputs.arch }}' -eq 'x86') { | ||
| 44 | $archdir = "MS32"; | ||
| 45 | } elseif ('${{ inputs.arch }}' -eq 'x64') { | ||
| 46 | $archdir = "MS64"; | ||
| 47 | } else { | ||
| 48 | write-host "Invalid arch=${{ inputs.arch }}" | ||
| 49 | exit 1 | ||
| 50 | } | ||
| 51 | $libusb_incdir = "C:\temp\libusb-${{ inputs.version }}\include"; | ||
| 52 | $libusb_libdir = "C:\temp\libusb-${{ inputs.version }}\VS2022\${archdir}\dll"; | ||
| 53 | |||
| 54 | $libusb_header = "${libusb_incdir}\libusb.h"; | ||
| 55 | $libusb_implib = "${libusb_libdir}\libusb-1.0.lib"; | ||
| 56 | $libusb_dll = "${libusb_libdir}\libusb-1.0.dll"; | ||
| 57 | |||
| 58 | if (!(Test-Path "${libusb_header}")) { | ||
| 59 | write-host "${libusb_header} does not exist!" | ||
| 60 | exit 1 | ||
| 61 | } | ||
| 62 | if (!(Test-Path "${libusb_implib}")){ | ||
| 63 | write-host "${libusb_implib} does not exist!" | ||
| 64 | exit 1 | ||
| 65 | } | ||
| 66 | if (!(Test-Path "${libusb_dll}")) { | ||
| 67 | write-host "${libusb_dll} does not exist!" | ||
| 68 | exit 1 | ||
| 69 | } | ||
| 70 | echo "root=${libusb_incdir};${libusb_libdir}" >> $env:GITHUB_OUTPUT | ||
| 71 | echo "LibUSB_ROOT=${libusb_incdir};${libusb_libdir}" >> $env:GITHUB_ENV | ||
