Skip to content

Commit 12a30f1

Browse files
committed
Merge branch 'master' into connection-callback
2 parents ec2cd2f + 517880e commit 12a30f1

File tree

4 files changed

+23
-10
lines changed

4 files changed

+23
-10
lines changed

.github/workflows/builds.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ jobs:
439439
- name: Install dependencies
440440
run: |
441441
pacman -Sy
442-
pacman -S --noconfirm glibc lib32-glibc gcc pkg-config autoconf automake libtool libusb libudev0 cmake make
442+
pacman -S --noconfirm glibc lib32-glibc gcc pkg-config autoconf automake libtool libusb cmake make
443443
- name: Configure CMake
444444
run: |
445445
rm -rf build install

windows/hid.c

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@
3030
extern "C" {
3131
#endif
3232

33+
#ifdef WIN32_LEAN_AND_MEAN
34+
/* It may be set by IDE/project and apparently HIDAPI relies
35+
* on certain Windows headers being included by default. */
36+
#undef WIN32_LEAN_AND_MEAN
37+
#endif
38+
3339
#include "hidapi_winapi.h"
3440

3541
#include <windows.h>
@@ -145,11 +151,13 @@ static int lookup_functions()
145151
goto err;
146152
}
147153

148-
#if defined(__GNUC__)
149-
# pragma GCC diagnostic push
150-
# pragma GCC diagnostic ignored "-Wcast-function-type"
151-
#endif
152-
#define RESOLVE(lib_handle, x) x = (x##_)GetProcAddress(lib_handle, #x); if (!x) goto err;
154+
/* Avoid direct function-pointer cast from FARPROC to typed callback pointer.
155+
Using memcpy keeps this warning-free regardless of the compiler and compiler settings. */
156+
#define RESOLVE(lib_handle, x) do { \
157+
FARPROC proc_addr = GetProcAddress(lib_handle, #x); \
158+
if (!proc_addr) goto err; \
159+
memcpy(&x, &proc_addr, sizeof(x)); \
160+
} while (0)
153161

154162
RESOLVE(hid_lib_handle, HidD_GetHidGuid);
155163
RESOLVE(hid_lib_handle, HidD_GetAttributes);
@@ -176,9 +184,6 @@ static int lookup_functions()
176184
RESOLVE(cfgmgr32_lib_handle, CM_Unregister_Notification);
177185

178186
#undef RESOLVE
179-
#if defined(__GNUC__)
180-
# pragma GCC diagnostic pop
181-
#endif
182187

183188
return 0;
184189

windows/hidapi.vcxproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
3333
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
3434
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
35+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='18'">v145</PlatformToolset>
3536
<CharacterSet>Unicode</CharacterSet>
3637
<WholeProgramOptimization>true</WholeProgramOptimization>
3738
</PropertyGroup>
@@ -43,6 +44,7 @@
4344
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
4445
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
4546
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
47+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='18'">v145</PlatformToolset>
4648
<CharacterSet>Unicode</CharacterSet>
4749
<WholeProgramOptimization>true</WholeProgramOptimization>
4850
</PropertyGroup>
@@ -54,6 +56,7 @@
5456
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
5557
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
5658
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
59+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='18'">v145</PlatformToolset>
5760
<CharacterSet>Unicode</CharacterSet>
5861
</PropertyGroup>
5962
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
@@ -64,6 +67,7 @@
6467
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
6568
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
6669
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
70+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='18'">v145</PlatformToolset>
6771
<CharacterSet>Unicode</CharacterSet>
6872
</PropertyGroup>
6973
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@@ -197,4 +201,4 @@
197201
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
198202
<ImportGroup Label="ExtensionTargets">
199203
</ImportGroup>
200-
</Project>
204+
</Project>

windows/hidtest.vcxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
3232
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
3333
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
34+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='18'">v145</PlatformToolset>
3435
<CharacterSet>MultiByte</CharacterSet>
3536
<WholeProgramOptimization>true</WholeProgramOptimization>
3637
</PropertyGroup>
@@ -42,6 +43,7 @@
4243
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
4344
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
4445
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
46+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='18'">v145</PlatformToolset>
4547
<CharacterSet>MultiByte</CharacterSet>
4648
<WholeProgramOptimization>true</WholeProgramOptimization>
4749
</PropertyGroup>
@@ -53,6 +55,7 @@
5355
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
5456
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
5557
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
58+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='18'">v145</PlatformToolset>
5659
<CharacterSet>MultiByte</CharacterSet>
5760
</PropertyGroup>
5861
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
@@ -63,6 +66,7 @@
6366
<PlatformToolset Condition="'$(VisualStudioVersion)'=='15'">v141</PlatformToolset>
6467
<PlatformToolset Condition="'$(VisualStudioVersion)'=='16'">v142</PlatformToolset>
6568
<PlatformToolset Condition="'$(VisualStudioVersion)'=='17'">v143</PlatformToolset>
69+
<PlatformToolset Condition="'$(VisualStudioVersion)'=='18'">v145</PlatformToolset>
6670
<CharacterSet>MultiByte</CharacterSet>
6771
</PropertyGroup>
6872
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

0 commit comments

Comments
 (0)