File: CMakeLists.txt

package info (click to toggle)
ubertooth 2018.12.R1-5.4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,320 kB
  • sloc: ansic: 18,653; cpp: 2,549; python: 604; makefile: 474; asm: 113; perl: 86; sh: 63; ruby: 43; xml: 20
file content (61 lines) | stat: -rw-r--r-- 2,496 bytes parent folder | download
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
cmake_minimum_required(VERSION 3.12)

if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
    SET(SYSTEM_IS_LINUX TRUE)
    SET(UDEV_OPTION_DEFAULT ON)
else()
    SET(SYSTEM_IS_LINUX FALSE)
    SET(UDEV_OPTION_DEFAULT OFF)
endif()

option(INSTALL_UDEV_RULES
    "Install udev rules for the Ubertooth"
    ${UDEV_OPTION_DEFAULT}
)

set(UDEV_RULES_PATH
    "/etc/udev/rules.d"
    CACHE STRING
    "Target directory for udev rule installation. Ensure you have permissions to write to this directory."
)

if(SYSTEM_IS_LINUX)
    if(INSTALL_UDEV_RULES)
        if(NOT DEFINED UDEV_RULES_GROUP)
            foreach(group usb plugdev)
                execute_process(COMMAND "getent" group "${group}"
                                RESULT_VARIABLE _GETENT_RESULT
                                OUTPUT_QUIET
                                ERROR_QUIET)
                if(NOT _GETENT_RESULT)
                    message(STATUS "Setting udev rule group to - ${group}")
                    set(UDEV_RULES_GROUP ${group})
                    break()
                endif(NOT _GETENT_RESULT)
            endforeach(group)
        endif(NOT DEFINED UDEV_RULES_GROUP)
        if(DEFINED UDEV_RULES_GROUP)
            set(UBERTOOTH_GROUP "${UDEV_RULES_GROUP}"
                CACHE STRING "Group to associate Ubertooth devices with in udev rules")
            configure_file(${CMAKE_CURRENT_SOURCE_DIR}/40-ubertooth.rules.in
                        ${CMAKE_CURRENT_BINARY_DIR}/40-ubertooth.rules
                        @ONLY
                        )
            message(STATUS  "Ubertooth udev rules will be installed to '${UDEV_RULES_PATH}' upon running 'make install'")
            install(FILES ${CMAKE_CURRENT_BINARY_DIR}/40-ubertooth.rules
                    DESTINATION ${UDEV_RULES_PATH}
                    COMPONENT "udev_rules")
        else(UDEV_RULES_GROUP)
            message(STATUS "Ubertooth udev rules will not be installed because no suitable group was found")
            message(STATUS "A group can be specified with -DUDEV_RULES_GROUP=<group>")
        endif(DEFINED UDEV_RULES_GROUP)
    else(INSTALL_UDEV_RULES)
        message(STATUS
                "Ubertooth udev rules will not be installed because INSTALL_UDEV_RULES=OFF"
               )
    endif(INSTALL_UDEV_RULES)
else(SYSTEM_IS_LINUX)
    if(INSTALL_UDEV_RULES)
        message(STATUS "udev rules not supported on this platform. Hide this message via -DINSTALL_UDEV_RULES=Off")
    endif(INSTALL_UDEV_RULES)
endif(SYSTEM_IS_LINUX)