Skip to content

Commit a90050c

Browse files
committed
Separated library sources in cmake for selective.
1 parent 7856de7 commit a90050c

File tree

1 file changed

+107
-70
lines changed

1 file changed

+107
-70
lines changed

CMakeLists.txt

Lines changed: 107 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -40,44 +40,105 @@ set(CORE_SRCS
4040
cores/esp32/WString.cpp
4141
)
4242

43-
set(LIBRARY_SRCS
44-
libraries/ArduinoOTA/src/ArduinoOTA.cpp
45-
libraries/AsyncUDP/src/AsyncUDP.cpp
43+
set(ARDUINO_ALL_LIBRARIES
44+
ArduinoOTA
45+
AsyncUDP
46+
BLE
47+
BluetoothSerial
48+
DNSServer
49+
EEPROM
50+
ESPmDNS
51+
FFat
52+
FS
53+
HTTPClient
54+
HTTPUpdate
55+
LITTLEFS
56+
NetBIOS
57+
Preferences
58+
RainMaker
59+
SD_MMC
60+
SD
61+
SPIFFS
62+
SPI
63+
Ticker
64+
Update
65+
WebServer
66+
WiFiClientSecure
67+
WiFi
68+
WiFiProv
69+
Wire
70+
)
71+
72+
set(ARDUINO_LIBRARY_ArduinoOTA_SRCS libraries/ArduinoOTA/src/ArduinoOTA.cpp)
73+
set(ARDUINO_LIBRARY_ArduinoOTA_REQUIRES esp_https_ota)
74+
75+
set(ARDUINO_LIBRARY_AsyncUDP_SRCS libraries/AsyncUDP/src/AsyncUDP.cpp)
76+
77+
set(ARDUINO_LIBRARY_BluetoothSerial_SRCS
4678
libraries/BluetoothSerial/src/BluetoothSerial.cpp
4779
libraries/BluetoothSerial/src/BTAddress.cpp
4880
libraries/BluetoothSerial/src/BTAdvertisedDeviceSet.cpp
49-
libraries/BluetoothSerial/src/BTScanResultsSet.cpp
50-
libraries/DNSServer/src/DNSServer.cpp
51-
libraries/EEPROM/src/EEPROM.cpp
52-
libraries/ESPmDNS/src/ESPmDNS.cpp
53-
libraries/FFat/src/FFat.cpp
81+
libraries/BluetoothSerial/src/BTScanResultsSet.cpp)
82+
83+
set(ARDUINO_LIBRARY_DNSServer_SRCS libraries/DNSServer/src/DNSServer.cpp)
84+
85+
set(ARDUINO_LIBRARY_EEPROM_SRCS libraries/EEPROM/src/EEPROM.cpp)
86+
87+
set(ARDUINO_LIBRARY_ESPmDNS_SRCS libraries/ESPmDNS/src/ESPmDNS.cpp)
88+
89+
set(ARDUINO_LIBRARY_FFat_SRCS libraries/FFat/src/FFat.cpp)
90+
91+
set(ARDUINO_LIBRARY_FS_SRCS
5492
libraries/FS/src/FS.cpp
55-
libraries/FS/src/vfs_api.cpp
56-
libraries/HTTPClient/src/HTTPClient.cpp
57-
libraries/HTTPUpdate/src/HTTPUpdate.cpp
58-
libraries/LITTLEFS/src/LITTLEFS.cpp
59-
libraries/NetBIOS/src/NetBIOS.cpp
60-
libraries/Preferences/src/Preferences.cpp
93+
libraries/FS/src/vfs_api.cpp)
94+
95+
set(ARDUINO_LIBRARY_HTTPClient_SRCS libraries/HTTPClient/src/HTTPClient.cpp)
96+
97+
set(ARDUINO_LIBRARY_HTTPUpdate_SRCS libraries/HTTPUpdate/src/HTTPUpdate.cpp)
98+
99+
set(ARDUINO_LIBRARY_LITTLEFS_SRCS libraries/LITTLEFS/src/LITTLEFS.cpp)
100+
set(ARDUINO_LIBRARY_LITTLEFS_REQUIRES esp_littlefs)
101+
102+
set(ARDUINO_LIBRARY_NetBIOS_SRCS libraries/NetBIOS/src/NetBIOS.cpp)
103+
104+
set(ARDUINO_LIBRARY_Preferences_SRCS libraries/Preferences/src/Preferences.cpp)
105+
106+
set(ARDUINO_LIBRARY_RainMaker_SRCS
61107
libraries/RainMaker/src/RMaker.cpp
62108
libraries/RainMaker/src/RMakerNode.cpp
63109
libraries/RainMaker/src/RMakerParam.cpp
64110
libraries/RainMaker/src/RMakerDevice.cpp
65-
libraries/RainMaker/src/RMakerType.cpp
66-
libraries/SD_MMC/src/SD_MMC.cpp
111+
libraries/RainMaker/src/RMakerType.cpp)
112+
113+
set(ARDUINO_LIBRARY_SD_MMC_SRCS libraries/SD_MMC/src/SD_MMC.cpp)
114+
115+
set(ARDUINO_LIBRARY_SD_SRCS
67116
libraries/SD/src/SD.cpp
68117
libraries/SD/src/sd_diskio.cpp
69-
libraries/SD/src/sd_diskio_crc.c
70-
libraries/SimpleBLE/src/SimpleBLE.cpp
71-
libraries/SPIFFS/src/SPIFFS.cpp
72-
libraries/SPI/src/SPI.cpp
73-
libraries/Ticker/src/Ticker.cpp
118+
libraries/SD/src/sd_diskio_crc.c)
119+
120+
set(ARDUINO_LIBRARY_SimpleBLE_SRCS libraries/SimpleBLE/src/SimpleBLE.cpp)
121+
122+
set(ARDUINO_LIBRARY_SPIFFS_SRCS libraries/SPIFFS/src/SPIFFS.cpp)
123+
124+
set(ARDUINO_LIBRARY_SPI_SRCS libraries/SPI/src/SPI.cpp)
125+
126+
set(ARDUINO_LIBRARY_Ticker_SRCS libraries/Ticker/src/Ticker.cpp)
127+
128+
set(ARDUINO_LIBRARY_Update_SRCS
74129
libraries/Update/src/Updater.cpp
75-
libraries/Update/src/HttpsOTAUpdate.cpp
130+
libraries/Update/src/HttpsOTAUpdate.cpp)
131+
132+
set(ARDUINO_LIBRARY_WebServer_SRCS
76133
libraries/WebServer/src/WebServer.cpp
77134
libraries/WebServer/src/Parsing.cpp
78-
libraries/WebServer/src/detail/mimetable.cpp
135+
libraries/WebServer/src/detail/mimetable.cpp)
136+
137+
set(ARDUINO_LIBRARY_WiFiClientSecure_SRCS
79138
libraries/WiFiClientSecure/src/ssl_client.cpp
80-
libraries/WiFiClientSecure/src/WiFiClientSecure.cpp
139+
libraries/WiFiClientSecure/src/WiFiClientSecure.cpp)
140+
141+
set(ARDUINO_LIBRARY_WiFi_SRCS
81142
libraries/WiFi/src/ETH.cpp
82143
libraries/WiFi/src/WiFiAP.cpp
83144
libraries/WiFi/src/WiFiClient.cpp
@@ -87,12 +148,13 @@ set(LIBRARY_SRCS
87148
libraries/WiFi/src/WiFiScan.cpp
88149
libraries/WiFi/src/WiFiServer.cpp
89150
libraries/WiFi/src/WiFiSTA.cpp
90-
libraries/WiFi/src/WiFiUdp.cpp
91-
libraries/WiFiProv/src/WiFiProv.cpp
92-
libraries/Wire/src/Wire.cpp
93-
)
151+
libraries/WiFi/src/WiFiUdp.cpp)
152+
153+
set(ARDUINO_LIBRARY_WiFiProv_SRCS libraries/WiFiProv/src/WiFiProv.cpp)
154+
155+
set(ARDUINO_LIBRARY_Wire_SRCS libraries/Wire/src/Wire.cpp)
94156

95-
set(BLE_SRCS
157+
set(ARDUINO_LIBRARY_BLE_SRCS
96158
libraries/BLE/src/BLE2902.cpp
97159
libraries/BLE/src/BLE2904.cpp
98160
libraries/BLE/src/BLEAddress.cpp
@@ -125,50 +187,25 @@ set(BLE_SRCS
125187
)
126188

127189

128-
set(includedirs
129-
variants/${IDF_TARGET}/
130-
cores/esp32/
131-
libraries/ArduinoOTA/src
132-
libraries/AsyncUDP/src
133-
libraries/BLE/src
134-
libraries/BluetoothSerial/src
135-
libraries/DNSServer/src
136-
libraries/EEPROM/src
137-
libraries/ESP32/src
138-
libraries/ESPmDNS/src
139-
libraries/FFat/src
140-
libraries/FS/src
141-
libraries/HTTPClient/src
142-
libraries/HTTPUpdate/src
143-
libraries/LITTLEFS/src
144-
libraries/NetBIOS/src
145-
libraries/Preferences/src
146-
libraries/RainMaker/src
147-
libraries/SD_MMC/src
148-
libraries/SD/src
149-
libraries/SimpleBLE/src
150-
libraries/SPIFFS/src
151-
libraries/SPI/src
152-
libraries/Ticker/src
153-
libraries/Update/src
154-
libraries/WebServer/src
155-
libraries/WiFiClientSecure/src
156-
libraries/WiFi/src
157-
libraries/WiFiProv/src
158-
libraries/Wire/src
159-
)
160-
161-
set(srcs ${CORE_SRCS} ${LIBRARY_SRCS} ${BLE_SRCS})
190+
set(includedirs variants/${IDF_TARGET}/ cores/esp32/)
191+
set(srcs ${CORE_SRCS})
162192
set(priv_includes cores/esp32/libb64)
163193
set(requires spi_flash mbedtls mdns esp_adc_cal)
164-
set(priv_requires fatfs nvs_flash app_update spiffs bootloader_support openssl bt arduino_tinyusb main)
194+
set(priv_requires fatfs nvs_flash app_update spiffs bootloader_support openssl bt main)
165195

166-
if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_ArduinoOTA)
167-
list(APPEND priv_requires esp_https_ota)
168-
endif()
169-
if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_LITTLEFS)
170-
list(APPEND priv_requires esp_littlefs)
171-
endif()
196+
foreach(libname IN LISTS ARDUINO_ALL_LIBRARIES)
197+
if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_${libname})
198+
if(ARDUINO_LIBRARY_${libname}_SRCS)
199+
list(APPEND srcs ${ARDUINO_LIBRARY_${libname}_SRCS})
200+
endif()
201+
if(ARDUINO_LIBRARY_${libname}_REQUIRES)
202+
list(APPEND priv_requires ${ARDUINO_LIBRARY_${libname}_REQUIRES})
203+
endif()
204+
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/libraries/${libname}/src)
205+
list(APPEND includedirs libraries/${libname}/src)
206+
endif()
207+
endif()
208+
endforeach()
172209

173210
idf_component_register(INCLUDE_DIRS ${includedirs} PRIV_INCLUDE_DIRS ${priv_includes} SRCS ${srcs} REQUIRES ${requires} PRIV_REQUIRES ${priv_requires})
174211

0 commit comments

Comments
 (0)