mirror of
https://github.com/RPCS3/hidapi.git
synced 2026-07-01 18:25:51 -04:00
8068574ee1
- not an independent build system, but a wrapper over CMake; - may be used as a standalone Meson build or as a subproject;
220 lines
7.7 KiB
YAML
220 lines
7.7 KiB
YAML
name: GitHub Builds
|
|
|
|
on: [push, pull_request]
|
|
|
|
env:
|
|
NIX_COMPILE_FLAGS: -Wall -Wextra -pedantic -Werror
|
|
MSVC_COMPILE_FLAGS: /W4 /WX
|
|
|
|
jobs:
|
|
macos-automake:
|
|
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install build tools
|
|
run: brew install autoconf automake libtool
|
|
- name: Configure Automake
|
|
run: |
|
|
./bootstrap
|
|
./configure --prefix=$(pwd)/install
|
|
- name: Build Automake
|
|
run: |
|
|
make
|
|
make install
|
|
- name: Clean build
|
|
run: make clean
|
|
- name: Build Manual makefile
|
|
working-directory: mac
|
|
run: make -f Makefile-manual
|
|
|
|
macos-cmake:
|
|
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
path: hidapisrc
|
|
- name: Install dependencies
|
|
run: brew install meson ninja
|
|
- name: Configure CMake
|
|
run: |
|
|
rm -rf build install
|
|
cmake -B build/shared -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/shared -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
|
|
cmake -B build/framework -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/framework -DCMAKE_FRAMEWORK=ON -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
|
|
- name: Build CMake Shared
|
|
working-directory: build/shared
|
|
run: make install
|
|
- name: Build CMake Framework
|
|
working-directory: build/framework
|
|
run: make install
|
|
- name: Check artifacts
|
|
uses: andstor/file-existence-action@v1
|
|
with:
|
|
files: "install/shared/lib/libhidapi.dylib, \
|
|
install/shared/include/hidapi/hidapi.h, \
|
|
install/shared/include/hidapi/hidapi_darwin.h, \
|
|
install/framework/lib/hidapi.framework/hidapi, \
|
|
install/framework/lib/hidapi.framework/Headers/hidapi.h, \
|
|
install/framework/lib/hidapi.framework/Headers/hidapi_darwin.h"
|
|
allow_failure: true
|
|
- name: Check Meson build
|
|
run: |
|
|
meson setup build_meson hidapisrc
|
|
cd build_meson
|
|
ninja
|
|
|
|
ubuntu-cmake:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
path: hidapisrc
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install libudev-dev libusb-1.0-0-dev python3-pip ninja-build
|
|
sudo -H pip3 install meson
|
|
- name: Configure CMake
|
|
run: |
|
|
rm -rf build install
|
|
cmake -B build/shared -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/shared -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
|
|
cmake -B build/static -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/static -DBUILD_SHARED_LIBS=FALSE -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
|
|
- name: Build CMake Shared
|
|
working-directory: build/shared
|
|
run: make install
|
|
- name: Build CMake Static
|
|
working-directory: build/static
|
|
run: make install
|
|
- name: Check artifacts
|
|
uses: andstor/file-existence-action@v1
|
|
with:
|
|
files: "install/shared/lib/libhidapi-libusb.so, \
|
|
install/shared/lib/libhidapi-hidraw.so, \
|
|
install/shared/include/hidapi/hidapi.h, \
|
|
install/shared/include/hidapi/hidapi_libusb.h, \
|
|
install/static/lib/libhidapi-libusb.a, \
|
|
install/static/lib/libhidapi-hidraw.a, \
|
|
install/static/include/hidapi/hidapi.h, \
|
|
install/static/include/hidapi/hidapi_libusb.h"
|
|
allow_failure: true
|
|
- name: Check Meson build
|
|
run: |
|
|
meson setup build_meson hidapisrc
|
|
cd build_meson
|
|
ninja
|
|
|
|
windows-cmake:
|
|
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
path: hidapisrc
|
|
- name: Install dependencies
|
|
run: |
|
|
choco install ninja
|
|
pip3 install meson
|
|
refreshenv
|
|
- name: Configure CMake MSVC
|
|
shell: cmd
|
|
run: |
|
|
cmake -B build\msvc -S hidapisrc -DCMAKE_INSTALL_PREFIX=install\msvc -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%MSVC_COMPILE_FLAGS%"
|
|
- name: Build CMake MSVC
|
|
working-directory: build/msvc
|
|
run: cmake --build . --target install
|
|
- name: Check artifacts MSVC
|
|
uses: andstor/file-existence-action@v1
|
|
with:
|
|
files: "install/msvc/lib/hidapi.lib, \
|
|
install/msvc/bin/hidapi.dll, \
|
|
install/msvc/include/hidapi/hidapi.h, \
|
|
install/msvc/include/hidapi/hidapi_winapi.h"
|
|
allow_failure: true
|
|
|
|
- name: Configure CMake NMake
|
|
shell: cmd
|
|
run: |
|
|
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
|
cmake -G"NMake Makefiles" -B build\nmake -S hidapisrc -DCMAKE_INSTALL_PREFIX=install\nmake -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%MSVC_COMPILE_FLAGS%"
|
|
- name: Build CMake NMake
|
|
working-directory: build\nmake
|
|
shell: cmd
|
|
run: |
|
|
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
|
nmake install
|
|
- name: Check artifacts NMake
|
|
uses: andstor/file-existence-action@v1
|
|
with:
|
|
files: "install/nmake/lib/hidapi.lib, \
|
|
install/nmake/bin/hidapi.dll, \
|
|
install/nmake/include/hidapi/hidapi.h, \
|
|
install/nmake/include/hidapi/hidapi_winapi.h"
|
|
allow_failure: true
|
|
|
|
- name: Configure CMake MinGW
|
|
shell: cmd
|
|
run: |
|
|
cmake -G"MinGW Makefiles" -B build\mingw -S hidapisrc -DCMAKE_INSTALL_PREFIX=install\mingw -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%NIX_COMPILE_FLAGS%"
|
|
- name: Build CMake MinGW
|
|
working-directory: build\mingw
|
|
run: cmake --build . --target install
|
|
- name: Check artifacts MinGW
|
|
uses: andstor/file-existence-action@v1
|
|
with:
|
|
files: "install/mingw/lib/libhidapi.dll.a, \
|
|
install/mingw/bin/libhidapi.dll, \
|
|
install/mingw/include/hidapi/hidapi.h, \
|
|
install/mingw/include/hidapi/hidapi_winapi.h"
|
|
allow_failure: true
|
|
|
|
- name: Check Meson build
|
|
shell: cmd
|
|
run: |
|
|
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
|
meson setup build_meson hidapisrc
|
|
cd build_meson
|
|
ninja
|
|
|
|
windows-msbuild:
|
|
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: microsoft/setup-msbuild@v1.1
|
|
- name: MSBuild x86
|
|
run: msbuild windows\hidapi.sln /p:Configuration=Release /p:Platform=Win32
|
|
- name: Check artifacts x86
|
|
uses: andstor/file-existence-action@v1
|
|
with:
|
|
files: "windows/Release/hidapi.dll, windows/Release/hidapi.lib, windows/Release/hidapi.pdb"
|
|
allow_failure: true
|
|
- name: MSBuild x64
|
|
run: msbuild windows\hidapi.sln /p:Configuration=Release /p:Platform=x64
|
|
- name: Check artifacts x64
|
|
uses: andstor/file-existence-action@v1
|
|
with:
|
|
files: "windows/x64/Release/hidapi.dll, windows/x64/Release/hidapi.lib, windows/x64/Release/hidapi.pdb"
|
|
allow_failure: true
|
|
- name: Gather artifacts
|
|
run: |
|
|
md artifacts
|
|
md artifacts\x86
|
|
md artifacts\x64
|
|
md artifacts\include
|
|
Copy-Item "windows\Release\hidapi.dll","windows\Release\hidapi.lib","windows\Release\hidapi.pdb" -Destination "artifacts\x86"
|
|
Copy-Item "windows\x64\Release\hidapi.dll","windows\x64\Release\hidapi.lib","windows\x64\Release\hidapi.pdb" -Destination "artifacts\x64"
|
|
Copy-Item "hidapi\hidapi.h","windows\hidapi_winapi.h" -Destination "artifacts\include"
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: hidapi-win
|
|
path: artifacts/
|
|
retention-days: ${{ (github.event_name == 'pull_request' || github.ref_name != 'master') && 7 || 90 }}
|