Skip to content

Commit dd6c8ae

Browse files
committed
Merge pull request #202 from dominicgs/cmake-fix
Move udev rule to libhackrf/
2 parents 4da9400 + 059c1cc commit dd6c8ae

File tree

5 files changed

+64
-64
lines changed

5 files changed

+64
-64
lines changed

host/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ project (hackrf_all)
55

66
add_subdirectory(libhackrf)
77
add_subdirectory(hackrf-tools)
8-
add_subdirectory(misc)
98

109
########################################################################
1110
# Create uninstall target
File renamed without changes.

host/libhackrf/CMakeLists.txt

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,70 @@ INSTALL(
8686
DESTINATION ${libpkgdata}/pkgconfig
8787
)
8888

89+
########################################################################
90+
# Create Pkg Config File
91+
########################################################################
92+
93+
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
94+
SET(SYSTEM_IS_LINUX TRUE)
95+
SET(UDEV_OPTION_DEFAULT ON)
96+
else()
97+
SET(SYSTEM_IS_LINUX FALSE)
98+
SET(UDEV_OPTION_DEFAULT OFF)
99+
endif()
100+
101+
option(INSTALL_UDEV_RULES
102+
"Install udev rules for the HackRF"
103+
${UDEV_OPTION_DEFAULT}
104+
)
105+
106+
set(UDEV_RULES_PATH
107+
"/etc/udev/rules.d"
108+
CACHE STRING
109+
"Target directory for udev rule installation. Ensure you have permissions to write to this directory."
110+
)
111+
112+
if(SYSTEM_IS_LINUX)
113+
if(INSTALL_UDEV_RULES)
114+
if(NOT DEFINED UDEV_RULES_GROUP)
115+
foreach(group usb plugdev)
116+
execute_process(COMMAND "getent" group "${group}"
117+
RESULT_VARIABLE _GETENT_RESULT
118+
OUTPUT_QUIET
119+
ERROR_QUIET)
120+
if(NOT _GETENT_RESULT)
121+
message(STATUS "Setting udev rule group to - ${group}")
122+
set(UDEV_RULES_GROUP ${group})
123+
break()
124+
endif(NOT _GETENT_RESULT)
125+
endforeach(group)
126+
endif(NOT DEFINED UDEV_RULES_GROUP)
127+
if(DEFINED UDEV_RULES_GROUP)
128+
set(HACKRF_GROUP "${UDEV_RULES_GROUP}"
129+
CACHE STRING "Group to associate HackRF devices with in udev rules")
130+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/53-hackrf.rules.in
131+
${CMAKE_CURRENT_BINARY_DIR}/53-hackrf.rules
132+
@ONLY
133+
)
134+
message(STATUS "HackRF udev rules will be installed to '${UDEV_RULES_PATH}' upon running 'make install'")
135+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/53-hackrf.rules
136+
DESTINATION ${UDEV_RULES_PATH}
137+
COMPONENT "udev_rules")
138+
else(UDEV_RULES_GROUP)
139+
message(STATUS "HackRF udev rules will not be installed because no suitable group was found")
140+
message(STATUS "A group can be specified with -DUDEV_RULES_GROUP=<group>")
141+
endif(DEFINED UDEV_RULES_GROUP)
142+
else(INSTALL_UDEV_RULES)
143+
message(STATUS
144+
"HackRF udev rules will not be installed because INSTALL_UDEV_RULES=OFF"
145+
)
146+
endif(INSTALL_UDEV_RULES)
147+
else(SYSTEM_IS_LINUX)
148+
if(INSTALL_UDEV_RULES)
149+
message(STATUS "udev rules not supported on this platform. Hide this message via -DINSTALL_UDEV_RULES=Off")
150+
endif(INSTALL_UDEV_RULES)
151+
endif(SYSTEM_IS_LINUX)
152+
89153
########################################################################
90154
# Create uninstall target
91155
########################################################################

host/misc/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
This file was deleted.

host/misc/udev/CMakeLists.txt

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)