@@ -86,6 +86,70 @@ INSTALL(
86
86
DESTINATION ${libpkgdata} /pkgconfig
87
87
)
88
88
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
+
89
153
########################################################################
90
154
# Create uninstall target
91
155
########################################################################
0 commit comments