| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- name: 'Setup libusb for MSVC'
- description: 'Download libusb sdk for MSVC, and set output/environment variables'
- inputs:
- version:
- description: 'libusb version'
- required: true
- default: '1.0.27'
- arch:
- description: "libusb architecture (x86 or x64)"
- rqeuired: true
- outputs:
- root:
- description: "libusb root directory"
- value: ${{ steps.final.outputs.root }}
- runs:
- using: 'composite'
- steps:
- - name: 'Restore cached libusb-${{ inputs.version }}.7z'
- id: cache-restore
- uses: actions/cache/restore@v4
- with:
- path: 'C:\temp\libusb-${{ inputs.version }}.7z'
- key: libusb-msvc-${{ inputs.version }}
- - name: 'Download libusb ${{ inputs.version }}'
- if: ${{ !steps.cache-restore.outputs.cache-hit }}
- shell: pwsh
- run: |
- Invoke-WebRequest "https://github.com/libusb/libusb/releases/download/v${{ inputs.version }}/libusb-${{ inputs.version }}.7z" -OutFile "C:\temp\libusb-${{ inputs.version }}.7z"
- - name: 'Cache libusb-${{ inputs.version }}.7z'
- if: ${{ !steps.cache-restore.outputs.cache-hit }}
- uses: actions/cache/save@v4
- with:
- path: 'C:\temp\libusb-${{ inputs.version }}.7z'
- key: libusb-msvc-${{ inputs.version }}
- - name: 'Extract libusb'
- shell: pwsh
- run: |
- 7z "-oC:\temp\libusb-${{ inputs.version }}" x "C:\temp\libusb-${{ inputs.version }}.7z"
- - name: 'Set output vars'
- id: final
- shell: pwsh
- run: |
- if ('${{ inputs.arch }}' -eq 'x86') {
- $archdir = "MS32";
- } elseif ('${{ inputs.arch }}' -eq 'x64') {
- $archdir = "MS64";
- } else {
- write-host "Invalid arch=${{ inputs.arch }}"
- exit 1
- }
- $libusb_incdir = "C:\temp\libusb-${{ inputs.version }}\include";
- $libusb_libdir = "C:\temp\libusb-${{ inputs.version }}\VS2022\${archdir}\dll";
-
- $libusb_header = "${libusb_incdir}\libusb.h";
- $libusb_implib = "${libusb_libdir}\libusb-1.0.lib";
- $libusb_dll = "${libusb_libdir}\libusb-1.0.dll";
-
- if (!(Test-Path "${libusb_header}")) {
- write-host "${libusb_header} does not exist!"
- exit 1
- }
- if (!(Test-Path "${libusb_implib}")){
- write-host "${libusb_implib} does not exist!"
- exit 1
- }
- if (!(Test-Path "${libusb_dll}")) {
- write-host "${libusb_dll} does not exist!"
- exit 1
- }
- echo "root=${libusb_incdir};${libusb_libdir}" >> $env:GITHUB_OUTPUT
- echo "LibUSB_ROOT=${libusb_incdir};${libusb_libdir}" >> $env:GITHUB_ENV
|