summaryrefslogtreecommitdiff
path: root/src/bluetooth/configure.cmake
blob: d8730e0f291b0a8fe633bee141c2beb92fb7ac62 (plain)
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
69
70
71
72
73


#### Inputs



#### Libraries

qt_find_package(BlueZ PROVIDED_TARGETS PkgConfig::BlueZ)


#### Tests

if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../config.tests/bluez/CMakeLists.txt")
    qt_config_compile_test("bluez"
                           LABEL "BlueZ"
                           PROJECT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../config.tests/bluez")
endif()

if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../config.tests/bluez_le/CMakeLists.txt")
    qt_config_compile_test("bluez_le"
                           LABEL "BlueZ Low Energy"
                           PROJECT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../config.tests/bluez_le")
endif()

if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../config.tests/linux_crypto_api/CMakeLists.txt")
    qt_config_compile_test("linux_crypto_api"
                           LABEL "Linux Crypto API"
                           PROJECT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../config.tests/linux_crypto_api")
endif()

if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../config.tests/winrt_bt/CMakeLists.txt")
    qt_config_compile_test("winrt_bt"
                           LABEL "WinRT Bluetooth API"
                           PROJECT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../config.tests/winrt_bt")
endif()


#### Features

qt_feature("bluez" PUBLIC
    LABEL "BlueZ"
    CONDITION BLUEZ_FOUND AND TEST_bluez AND QT_FEATURE_dbus
)
qt_feature("bluez_le" PRIVATE
    LABEL "BlueZ Low Energy"
    CONDITION QT_FEATURE_bluez AND TEST_bluez_le
)
qt_feature("linux_crypto_api" PRIVATE
    LABEL "Linux Crypto API"
    CONDITION QT_FEATURE_bluez_le AND TEST_linux_crypto_api
)
qt_feature("winrt_bt" PRIVATE
    LABEL "WinRT Bluetooth API"
    CONDITION WIN32 AND TEST_winrt_bt
)

qt_configure_add_summary_section(NAME "Qt Bluetooth")
qt_configure_add_summary_entry(ARGS bluez)
qt_configure_add_summary_entry(ARGS bluez_le)
qt_configure_add_summary_entry(ARGS linux_crypto_api)
qt_configure_add_summary_entry(ARGS winrt_bt)
qt_configure_end_summary_section()
qt_configure_add_report_entry(
    TYPE NOTE
    MESSAGE "Bluez version is too old to support Bluetooth Low Energy. Only classic Bluetooth will be available."
    CONDITION QT_FEATURE_bluez AND NOT QT_FEATURE_bluez_le
)
qt_configure_add_report_entry(
    TYPE NOTE
    MESSAGE "Linux crypto API not present. BTLE signed writes will not work."
    CONDITION QT_FEATURE_bluez_le AND NOT QT_FEATURE_linux_crypto_api
)