@@ -3,21 +3,107 @@ cmake_minimum_required(VERSION 3.23)
33project (loramac-radio C)
44
55if (NOT TARGET ${PROJECT_NAME} )
6-
6+
7+ set (LORAMAC_RADIO_LIST sx1272 sx1276 sx126x lr1110)
8+ set (LORAMAC_RADIO sx1272 CACHE STRING "Default radio is sx1272" )
9+ set_property (CACHE LORAMAC_RADIO PROPERTY STRINGS ${LORAMAC_RADIO_LIST} )
10+ set_property (CACHE LORAMAC_RADIO PROPERTY ADVANCED )
11+
712 add_library (${PROJECT_NAME} STATIC )
8-
9- target_sources (
10- ${PROJECT_NAME}
11- PUBLIC
12- ${LORAMAC_SOURCE_DIR} /radio/radio.h
13- ${LORAMAC_SOURCE_DIR} /radio/sx1276/sx1276.h
14- ${LORAMAC_SOURCE_DIR} /radio/sx1276/sx1276Regs-Fsk.h
15- ${LORAMAC_SOURCE_DIR} /radio/sx1276/sx1276Regs-LoRa.h
1613
17- PRIVATE
18- ${LORAMAC_SOURCE_DIR} /radio/sx1276/sx1276.c
19- )
20-
14+ if (${LORAMAC_RADIO} MATCHES lr1110)
15+ target_sources (
16+ ${PROJECT_NAME}
17+ PUBLIC
18+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110.h
19+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_bootloader.h
20+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_bootloader_types.h
21+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_crypto_engine.h
22+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_crypto_engine_types.h
23+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_driver_version.h
24+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_gnss.h
25+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_gnss_types.h
26+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_radio.h
27+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_radio_types.h
28+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_regmem.h
29+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_system.h
30+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_system_types.h
31+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_wifi.h
32+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_wifi_types.h
33+
34+ PRIVATE
35+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/radio.c
36+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_bootloader.c
37+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_crypto_engine.c
38+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_driver_version.c
39+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_gnss.c
40+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_radio.c
41+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_regmem.c
42+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_system.c
43+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src/lr1110_wifi.c
44+ )
45+ target_include_directories (
46+ ${PROJECT_NAME}
47+ PUBLIC
48+ ${LORAMAC_SOURCE_DIR} /radio/lr1110
49+ ${LORAMAC_SOURCE_DIR} /radio/lr1110/lr1110_driver/src
50+
51+ )
52+ elseif (${LORAMAC_RADIO} MATCHES sx126x)
53+ target_sources (
54+ ${PROJECT_NAME}
55+ PUBLIC
56+ ${LORAMAC_SOURCE_DIR} /radio/sx126x/sx126x.h
57+
58+ PRIVATE
59+ ${LORAMAC_SOURCE_DIR} /radio/sx126x/radio.c
60+ ${LORAMAC_SOURCE_DIR} /radio/sx126x/sx126x.c
61+ )
62+ target_include_directories (
63+ ${PROJECT_NAME}
64+ PUBLIC
65+ ${LORAMAC_SOURCE_DIR} /radio/sx126x
66+ )
67+ elseif (${LORAMAC_RADIO} MATCHES sx1272)
68+ target_sources (
69+ ${PROJECT_NAME}
70+ PUBLIC
71+ ${LORAMAC_SOURCE_DIR} /radio/sx1272/sx1272.h
72+ ${LORAMAC_SOURCE_DIR} /radio/sx1272/sx1272Regs-Fsk.h
73+ ${LORAMAC_SOURCE_DIR} /radio/sx1272/sx1272Regs-LoRa.h
74+
75+ PRIVATE
76+ ${LORAMAC_SOURCE_DIR} /radio/sx1272/sx1272.c
77+ )
78+ target_include_directories (
79+ ${PROJECT_NAME}
80+ PUBLIC
81+ ${LORAMAC_SOURCE_DIR} /radio/sx1272
82+ )
83+ elseif (${LORAMAC_RADIO} MATCHES sx1276)
84+ target_sources (
85+ ${PROJECT_NAME}
86+ PUBLIC
87+ ${LORAMAC_SOURCE_DIR} /radio/radio.h
88+ ${LORAMAC_SOURCE_DIR} /radio/sx1276/sx1276.h
89+ ${LORAMAC_SOURCE_DIR} /radio/sx1276/sx1276Regs-Fsk.h
90+ ${LORAMAC_SOURCE_DIR} /radio/sx1276/sx1276Regs-LoRa.h
91+
92+ PRIVATE
93+ ${LORAMAC_SOURCE_DIR} /radio/sx1276/sx1276.c
94+ )
95+ target_include_directories (
96+ ${PROJECT_NAME}
97+ PUBLIC
98+ ${LORAMAC_SOURCE_DIR} /radio/sx1276
99+ )
100+ else ()
101+ message (FATAL_ERROR "Unsupported radio driver selected..." )
102+ endif ()
103+
104+ option (LORAMAC_USE_RADIO_DEBUG "Enable Radio Debug GPIO's" OFF )
105+ target_compile_definitions (${PROJECT_NAME} PUBLIC $<$<BOOL :${LORAMAC_USE_RADIO_DEBUG} >:USE_RADIO_DEBUG>)
106+
21107 target_include_directories (
22108 ${PROJECT_NAME}
23109 PUBLIC
0 commit comments