Skip to content

Commit 52fa873

Browse files
authored
Windows build artifacts with Github Actions (signal11#414)
- a straight-forward build matrix for Appveyor; - MSBuild builds with Github Actions; - Visual Studio 2022 support for `.sln` (toolset v143); - gather Windows build artifacts with Github actions;
1 parent 5119684 commit 52fa873

File tree

4 files changed

+87
-56
lines changed

4 files changed

+87
-56
lines changed

.appveyor.yml

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,22 @@ environment:
88
arch: Win32
99
- BUILD_ENV: cygwin
1010

11-
install:
12-
- cmd: if %BUILD_ENV%==cygwin (
13-
C:\cygwin64\setup-x86_64.exe --quiet-mode --no-shortcuts --upgrade-also --packages autoconf,automake )
11+
for:
12+
-
13+
matrix:
14+
only:
15+
- BUILD_ENV: msbuild
1416

15-
build_script:
16-
- cmd: if %BUILD_ENV%==msbuild (
17-
msbuild .\windows\hidapi.sln /p:Configuration=Release /p:Platform=%arch% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" )
18-
- cmd: if %BUILD_ENV%==cygwin (
19-
C:\cygwin64\bin\bash -exlc "cd $APPVEYOR_BUILD_FOLDER; ./bootstrap; ./configure; make" )
17+
build_script:
18+
- cmd: msbuild .\windows\hidapi.sln /p:Configuration=Release /p:Platform=%arch% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
2019

21-
artifacts:
22-
# Win32 artifacts
23-
- path: .\windows\Release\hidapi.dll
24-
- path: .\windows\Release\hidapi.lib
25-
- path: .\windows\Release\hidapi.pdb
26-
- path: .\windows\Release\hidtest.exe
27-
- path: .\windows\Release\hidtest.pdb
28-
# x64 artifacts
29-
- path: .\windows\x64\Release\hidapi.dll
30-
- path: .\windows\x64\Release\hidapi.lib
31-
- path: .\windows\x64\Release\hidapi.pdb
32-
- path: .\windows\x64\Release\hidtest.exe
33-
- path: .\windows\x64\Release\hidtest.pdb
20+
-
21+
matrix:
22+
only:
23+
- BUILD_ENV: cygwin
24+
25+
install:
26+
- cmd: C:\cygwin64\setup-x86_64.exe --quiet-mode --no-shortcuts --upgrade-also --packages autoconf,automake
27+
28+
build_script:
29+
- cmd: C:\cygwin64\bin\bash -exlc "cd $APPVEYOR_BUILD_FOLDER; ./bootstrap; ./configure; make"

.github/workflows/builds.yml

Lines changed: 62 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -95,72 +95,99 @@ jobs:
9595
install/static/include/hidapi/hidapi_libusb.h"
9696
allow_failure: true
9797

98-
windows-cmake-msvc:
98+
windows-cmake:
9999

100100
runs-on: windows-latest
101101

102102
steps:
103103
- uses: actions/checkout@v2
104104
with:
105105
path: hidapisrc
106-
- name: Configure CMake
106+
- name: Configure CMake MSVC
107107
shell: cmd
108108
run: |
109-
RMDIR /Q /S build install
110-
cmake -B build -S hidapisrc -DCMAKE_INSTALL_PREFIX=install -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%MSVC_COMPILE_FLAGS%"
111-
- name: Build CMake
112-
working-directory: build
109+
cmake -B build\msvc -S hidapisrc -DCMAKE_INSTALL_PREFIX=install\msvc -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%MSVC_COMPILE_FLAGS%"
110+
- name: Build CMake MSVC
111+
working-directory: build/msvc
113112
run: cmake --build . --target install
114-
- name: Check artifacts
113+
- name: Check artifacts MSVC
115114
uses: andstor/file-existence-action@v1
116115
with:
117-
files: "install/lib/hidapi.lib, install/bin/hidapi.dll, install/include/hidapi/hidapi.h, install/include/hidapi/hidapi_winapi.h"
116+
files: "install/msvc/lib/hidapi.lib, \
117+
install/msvc/bin/hidapi.dll, \
118+
install/msvc/include/hidapi/hidapi.h, \
119+
install/msvc/include/hidapi/hidapi_winapi.h"
118120
allow_failure: true
119121

120-
windows-cmake-nmake:
121-
122-
runs-on: windows-latest
123-
124-
steps:
125-
- uses: actions/checkout@v2
126-
with:
127-
path: hidapisrc
128-
- name: Configure CMake
122+
- name: Configure CMake NMake
129123
shell: cmd
130124
run: |
131-
RMDIR /Q /S build install
132125
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
133-
cmake -G"NMake Makefiles" -B build -S hidapisrc -DCMAKE_INSTALL_PREFIX=install -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%MSVC_COMPILE_FLAGS%"
134-
- name: Build CMake
135-
working-directory: build
126+
cmake -G"NMake Makefiles" -B build\nmake -S hidapisrc -DCMAKE_INSTALL_PREFIX=install\nmake -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%MSVC_COMPILE_FLAGS%"
127+
- name: Build CMake NMake
128+
working-directory: build\nmake
136129
shell: cmd
137130
run: |
138131
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
139132
nmake install
140-
- name: Check artifacts
133+
- name: Check artifacts NMake
134+
uses: andstor/file-existence-action@v1
135+
with:
136+
files: "install/nmake/lib/hidapi.lib, \
137+
install/nmake/bin/hidapi.dll, \
138+
install/nmake/include/hidapi/hidapi.h, \
139+
install/nmake/include/hidapi/hidapi_winapi.h"
140+
allow_failure: true
141+
142+
- name: Configure CMake MinGW
143+
shell: cmd
144+
run: |
145+
cmake -G"MinGW Makefiles" -B build\mingw -S hidapisrc -DCMAKE_INSTALL_PREFIX=install\mingw -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%NIX_COMPILE_FLAGS%"
146+
- name: Build CMake MinGW
147+
working-directory: build\mingw
148+
run: cmake --build . --target install
149+
- name: Check artifacts MinGW
141150
uses: andstor/file-existence-action@v1
142151
with:
143-
files: "install/lib/hidapi.lib, install/bin/hidapi.dll, install/include/hidapi/hidapi.h, install/include/hidapi/hidapi_winapi.h"
152+
files: "install/mingw/lib/libhidapi.dll.a, \
153+
install/mingw/bin/libhidapi.dll, \
154+
install/mingw/include/hidapi/hidapi.h, \
155+
install/mingw/include/hidapi/hidapi_winapi.h"
144156
allow_failure: true
145157

146-
windows-cmake-mingw:
158+
windows-msbuild:
147159

148160
runs-on: windows-latest
149161

150162
steps:
151163
- uses: actions/checkout@v2
164+
- uses: microsoft/setup-msbuild@v1.1
165+
- name: MSBuild x86
166+
run: msbuild windows\hidapi.sln /p:Configuration=Release /p:Platform=Win32
167+
- name: Check artifacts x86
168+
uses: andstor/file-existence-action@v1
152169
with:
153-
path: hidapisrc
154-
- name: Configure CMake
155-
shell: cmd
156-
run: |
157-
RMDIR /Q /S build install
158-
cmake -G"MinGW Makefiles" -B build -S hidapisrc -DCMAKE_INSTALL_PREFIX=install -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%NIX_COMPILE_FLAGS%"
159-
- name: Build CMake
160-
working-directory: build
161-
run: cmake --build . --target install
162-
- name: Check artifacts
170+
files: "windows/Release/hidapi.dll, windows/Release/hidapi.lib, windows/Release/hidapi.pdb"
171+
allow_failure: true
172+
- name: MSBuild x64
173+
run: msbuild windows\hidapi.sln /p:Configuration=Release /p:Platform=x64
174+
- name: Check artifacts x64
163175
uses: andstor/file-existence-action@v1
164176
with:
165-
files: "install/lib/libhidapi.dll.a, install/bin/libhidapi.dll, install/include/hidapi/hidapi.h, install/include/hidapi/hidapi_winapi.h"
177+
files: "windows/x64/Release/hidapi.dll, windows/x64/Release/hidapi.lib, windows/x64/Release/hidapi.pdb"
166178
allow_failure: true
179+
- name: Gather artifacts
180+
run: |
181+
md artifacts
182+
md artifacts\x86
183+
md artifacts\x64
184+
md artifacts\include
185+
Copy-Item "windows\Release\hidapi.dll","windows\Release\hidapi.lib","windows\Release\hidapi.pdb" -Destination "artifacts\x86"
186+
Copy-Item "windows\x64\Release\hidapi.dll","windows\x64\Release\hidapi.lib","windows\x64\Release\hidapi.pdb" -Destination "artifacts\x64"
187+
Copy-Item "hidapi\hidapi.h","windows\hidapi_winapi.h" -Destination "artifacts\include"
188+
- name: Upload artifacts
189+
uses: actions/upload-artifact@v3
190+
with:
191+
name: hidapi-win
192+
path: artifacts/
193+
retention-days: ${{ (github.event_name == 'pull_request' || github.ref_name != 'master') && 7 || 90 }}

windows/hidapi.vcxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<PlatformToolset Condition="'$(VisualStudioVersion)'=='14'">v140</PlatformToolset>
3232
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
3333
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
34+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
3435
<CharacterSet>Unicode</CharacterSet>
3536
<WholeProgramOptimization>true</WholeProgramOptimization>
3637
</PropertyGroup>
@@ -41,6 +42,7 @@
4142
<PlatformToolset Condition="'$(VisualStudioVersion)'=='14'">v140</PlatformToolset>
4243
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
4344
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
45+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
4446
<CharacterSet>Unicode</CharacterSet>
4547
<WholeProgramOptimization>true</WholeProgramOptimization>
4648
</PropertyGroup>
@@ -51,6 +53,7 @@
5153
<PlatformToolset Condition="'$(VisualStudioVersion)'=='14'">v140</PlatformToolset>
5254
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
5355
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
56+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
5457
<CharacterSet>Unicode</CharacterSet>
5558
</PropertyGroup>
5659
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
@@ -60,6 +63,7 @@
6063
<PlatformToolset Condition="'$(VisualStudioVersion)'=='14'">v140</PlatformToolset>
6164
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
6265
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
66+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
6367
<CharacterSet>Unicode</CharacterSet>
6468
</PropertyGroup>
6569
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

windows/hidtest.vcxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
<PlatformToolset Condition="'$(VisualStudioVersion)'=='14'">v140</PlatformToolset>
3131
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
3232
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
33+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
3334
<CharacterSet>MultiByte</CharacterSet>
3435
<WholeProgramOptimization>true</WholeProgramOptimization>
3536
</PropertyGroup>
@@ -40,6 +41,7 @@
4041
<PlatformToolset Condition="'$(VisualStudioVersion)'=='14'">v140</PlatformToolset>
4142
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
4243
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
44+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
4345
<CharacterSet>MultiByte</CharacterSet>
4446
<WholeProgramOptimization>true</WholeProgramOptimization>
4547
</PropertyGroup>
@@ -50,6 +52,7 @@
5052
<PlatformToolset Condition="'$(VisualStudioVersion)'=='14'">v140</PlatformToolset>
5153
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
5254
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
55+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
5356
<CharacterSet>MultiByte</CharacterSet>
5457
</PropertyGroup>
5558
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
@@ -59,6 +62,7 @@
5962
<PlatformToolset Condition="'$(VisualStudioVersion)'=='14'">v140</PlatformToolset>
6063
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
6164
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
65+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
6266
<CharacterSet>MultiByte</CharacterSet>
6367
</PropertyGroup>
6468
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

0 commit comments

Comments
 (0)