Skip to content

Commit c95795a

Browse files
committed
Fix hidtest build
- fix including platform-specific includes when HIDAPI is a CMake subdirectory; - check libusb and winapi platform-specific headers with hidtest;
1 parent 52c728a commit c95795a

File tree

11 files changed

+41
-19
lines changed

11 files changed

+41
-19
lines changed

.github/workflows/builds.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ jobs:
4040
- name: Configure CMake
4141
run: |
4242
rm -rf build install
43-
cmake -B build/shared -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/shared "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
44-
cmake -B build/framework -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/framework -DCMAKE_FRAMEWORK=ON "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
43+
cmake -B build/shared -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/shared -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
44+
cmake -B build/framework -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/framework -DCMAKE_FRAMEWORK=ON -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
4545
- name: Build CMake Shared
4646
working-directory: build/shared
4747
run: make install
@@ -74,8 +74,8 @@ jobs:
7474
- name: Configure CMake
7575
run: |
7676
rm -rf build install
77-
cmake -B build/shared -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/shared "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
78-
cmake -B build/static -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/static -DBUILD_SHARED_LIBS=FALSE "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
77+
cmake -B build/shared -S hidapisrc -DCMAKE_INSTALL_PREFIX=install/shared -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=${NIX_COMPILE_FLAGS}"
78+
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}"
7979
- name: Build CMake Shared
8080
working-directory: build/shared
8181
run: make install
@@ -107,7 +107,7 @@ jobs:
107107
shell: cmd
108108
run: |
109109
RMDIR /Q /S build install
110-
cmake -B build -S hidapisrc -DCMAKE_INSTALL_PREFIX=install "-DCMAKE_C_FLAGS=%MSVC_COMPILE_FLAGS%"
110+
cmake -B build -S hidapisrc -DCMAKE_INSTALL_PREFIX=install -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%MSVC_COMPILE_FLAGS%"
111111
- name: Build CMake
112112
working-directory: build
113113
run: cmake --build . --target install
@@ -130,7 +130,7 @@ jobs:
130130
run: |
131131
RMDIR /Q /S build install
132132
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 "-DCMAKE_C_FLAGS=%MSVC_COMPILE_FLAGS%"
133+
cmake -G"NMake Makefiles" -B build -S hidapisrc -DCMAKE_INSTALL_PREFIX=install -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%MSVC_COMPILE_FLAGS%"
134134
- name: Build CMake
135135
working-directory: build
136136
shell: cmd
@@ -155,7 +155,7 @@ jobs:
155155
shell: cmd
156156
run: |
157157
RMDIR /Q /S build install
158-
cmake -G"MinGW Makefiles" -B build -S hidapisrc -DCMAKE_INSTALL_PREFIX=install "-DCMAKE_C_FLAGS=%NIX_COMPILE_FLAGS%"
158+
cmake -G"MinGW Makefiles" -B build -S hidapisrc -DCMAKE_INSTALL_PREFIX=install -DHIDAPI_BUILD_HIDTEST=ON "-DCMAKE_C_FLAGS=%NIX_COMPILE_FLAGS%"
159159
- name: Build CMake
160160
working-directory: build
161161
run: cmake --build . --target install

hidtest/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ if(NOT WIN32 AND NOT APPLE AND CMAKE_SYSTEM_NAME MATCHES "Linux")
99
endif()
1010
if(TARGET hidapi::libusb)
1111
add_executable(hidtest_libusb test.c)
12+
target_compile_definitions(hidtest_libusb PRIVATE USING_HIDAPI_LIBUSB)
1213
target_link_libraries(hidtest_libusb hidapi::libusb)
1314
list(APPEND HIDAPI_HIDTEST_TARGETS hidtest_libusb)
1415
endif()

hidtest/Makefile.am

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ endif
2222
if OS_DARWIN
2323
AM_CPPFLAGS += -I$(top_srcdir)/mac/
2424
endif
25+
26+
if OS_WINDOWS
27+
AM_CPPFLAGS += -I$(top_srcdir)/windows/
28+
endif

hidtest/test.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,21 @@
3636
#define HID_API_VERSION HID_API_MAKE_VERSION(HID_API_VERSION_MAJOR, HID_API_VERSION_MINOR, HID_API_VERSION_PATCH)
3737
#endif
3838

39+
//
40+
// Sample using platform-specific headers
3941
#if defined(__APPLE__) && HID_API_VERSION >= HID_API_MAKE_VERSION(0, 12, 0)
4042
#include <hidapi_darwin.h>
4143
#endif
4244

45+
#if defined(_WIN32) && HID_API_VERSION >= HID_API_MAKE_VERSION(0, 12, 0)
46+
#include <hidapi_winapi.h>
47+
#endif
48+
49+
#if defined(USING_HIDAPI_LIBUSB) && HID_API_VERSION >= HID_API_MAKE_VERSION(0, 12, 0)
50+
#include <hidapi_libusb.h>
51+
#endif
52+
//
53+
4354
int main(int argc, char* argv[])
4455
{
4556
(void)argc;
@@ -161,7 +172,7 @@ int main(int argc, char* argv[])
161172
// Print out the returned buffer.
162173
printf("Feature Report\n ");
163174
for (i = 0; i < res; i++)
164-
printf("%02hhx ", buf[i]);
175+
printf("%02x ", (unsigned int) buf[i]);
165176
printf("\n");
166177
}
167178

@@ -204,7 +215,7 @@ int main(int argc, char* argv[])
204215
printf("Data read:\n ");
205216
// Print out the returned buffer.
206217
for (i = 0; i < res; i++)
207-
printf("%02hhx ", buf[i]);
218+
printf("%02x ", (unsigned int) buf[i]);
208219
printf("\n");
209220

210221
hid_close(handle);

libusb/Makefile.freebsd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ CFLAGS ?= -Wall -g -fPIC
1515

1616
COBJS = hid.o ../hidtest/test.o
1717
OBJS = $(COBJS)
18-
INCLUDES = -I../hidapi -I/usr/local/include
18+
INCLUDES = -I../hidapi -I. -I/usr/local/include
1919
LDFLAGS = -L/usr/local/lib
2020
LIBS = -lusb -liconv -pthread
2121

libusb/Makefile.haiku

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ CFLAGS ?= -Wall -g -fPIC
1515

1616
COBJS = hid.o ../hidtest/test.o
1717
OBJS = $(COBJS)
18-
INCLUDES = -I../hidapi -I/usr/local/include
18+
INCLUDES = -I../hidapi -I. -I/usr/local/include
1919
LDFLAGS = -L/usr/local/lib
2020
LIBS = -lusb -liconv -pthread
2121

libusb/Makefile.linux

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ COBJS = $(COBJS_LIBUSB) ../hidtest/test.o
2020
OBJS = $(COBJS)
2121
LIBS_USB = `pkg-config libusb-1.0 --libs` -lrt -lpthread
2222
LIBS = $(LIBS_USB)
23-
INCLUDES ?= -I../hidapi `pkg-config libusb-1.0 --cflags`
23+
INCLUDES ?= -I../hidapi -I. `pkg-config libusb-1.0 --cflags`
2424

2525

2626
# Console Test Program

src/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,16 @@ set(HIDAPI_NEED_EXPORT_LIBUDEV FALSE)
9595
set(HIDAPI_NEED_EXPORT_ICONV FALSE)
9696

9797
if(WIN32)
98+
target_include_directories(hidapi_include INTERFACE
99+
"$<BUILD_INTERFACE:${PROJECT_ROOT}/windows>"
100+
)
98101
add_subdirectory("${PROJECT_ROOT}/windows" windows)
99102
set(EXPORT_ALIAS winapi)
100103
list(APPEND EXPORT_COMPONENTS winapi)
101104
elseif(APPLE)
105+
target_include_directories(hidapi_include INTERFACE
106+
"$<BUILD_INTERFACE:${PROJECT_ROOT}/mac>"
107+
)
102108
add_subdirectory("${PROJECT_ROOT}/mac" mac)
103109
set(EXPORT_ALIAS darwin)
104110
list(APPEND EXPORT_COMPONENTS darwin)

windows/Makefile.mingw

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ all: hidtest libhidapi.dll
1111
CC=gcc
1212
COBJS=hid.o ../hidtest/test.o
1313
OBJS=$(COBJS)
14-
CFLAGS=-I../hidapi -g -c
14+
CFLAGS=-I../hidapi -I. -g -c
1515
LIBS=
1616
DLL_LDFLAGS = -mwindows
1717

windows/hidtest.vcproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
<Tool
4141
Name="VCCLCompilerTool"
4242
Optimization="0"
43-
AdditionalIncludeDirectories="..\hidapi"
43+
AdditionalIncludeDirectories="..\hidapi;."
4444
MinimalRebuild="true"
4545
BasicRuntimeChecks="3"
4646
RuntimeLibrary="3"
@@ -115,7 +115,7 @@
115115
Name="VCCLCompilerTool"
116116
Optimization="2"
117117
EnableIntrinsicFunctions="true"
118-
AdditionalIncludeDirectories="..\hidapi"
118+
AdditionalIncludeDirectories="..\hidapi;."
119119
RuntimeLibrary="2"
120120
EnableFunctionLevelLinking="true"
121121
WarningLevel="3"

0 commit comments

Comments
 (0)