-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
68 lines (53 loc) · 1.93 KB
/
CMakeLists.txt
File metadata and controls
68 lines (53 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
cmake_minimum_required(VERSION 3.21)
project(hid-rp
LANGUAGES CXX
VERSION 1.0.0
)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
include(GNUInstallDirs)
set(INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}")
# add HID usage tables
include(ExternalProject)
set(HID_USAGE_TABLES_URL "https://github.com/IntergatedCircuits/hid-usage-tables.git" CACHE STRING "HID Usage Tables repository")
set(HID_USAGE_TABLES_REV "ddd0d342ba5e912505c21cbb3b736206b4e5ed44" CACHE STRING "HID Usage Tables commit hash")
set(USAGE_TABLES_OUTPUT_DIR ${INCLUDES}/hid/page)
find_package(Python 3 REQUIRED)
if(Python_VERSION_MAJOR LESS 3)
message(FATAL_ERROR "Python 3 is required for usage tables code generation.")
endif()
ExternalProject_Add(hid-usage-tables
PREFIX ${CMAKE_BINARY_DIR}/hid-usage-tables
GIT_REPOSITORY ${HID_USAGE_TABLES_URL}
GIT_TAG ${HID_USAGE_TABLES_REV}
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR> ${Python_EXECUTABLE} <SOURCE_DIR>/src/hid/codegen/cpp.py ${USAGE_TABLES_OUTPUT_DIR}
BUILD_COMMAND ""
INSTALL_COMMAND ""
UPDATE_DISCONNECTED TRUE
)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
if(ZEPHYR_BITFILLED_MODULE_DIR OR MCUX_BITFILLED_MODULE_DIR)
else()
include(get_cpm)
CPMAddPackage("gh:IntergatedCircuits/bitfilled#60673d361f36b7f2e53c26a10fcbc3d1e71510a6")
endif()
# the library itself
add_library(${PROJECT_NAME} INTERFACE)
add_dependencies(${PROJECT_NAME} hid-usage-tables)
target_include_directories(${PROJECT_NAME}
INTERFACE
$<BUILD_INTERFACE:${INCLUDES}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
target_link_libraries(${PROJECT_NAME}
INTERFACE
bitfilled
)
add_subdirectory(hid-rd-reader)
option(HID_RP_TESTS "hid-rp: enable unit testing" ${PROJECT_IS_TOP_LEVEL})
if(HID_RP_TESTS)
enable_testing()
add_subdirectory(test)
endif()