Ahojte mám projekt,
Projekt je kompletne postaveny nad CMake v C++ niečo je v C. Teraz menej podstatne informacie: ale pre uplnosť ich tam doplnim: Projekt je určeny pre ESP32 postaveny nad ESP-IDF pričom použiva aj ArduinoESP32 (objektova libka povodne vymyslena pre Arduino prenesena aj pre ESP32).
Podstatne je že: Projekt použiva komponenty tretich stran, ktore su v adresari components pridane su ako git submodules. Projekt má hlavný CMakeLists.txt vedlajšie CMakeLists.txt a potom ešte každa komponenta ma ma vlastny CMakeLists.txt
Problém je že: frameworky ako ESP-IDF, alebo ArduinoESP32 v novšich verziach vyčelňuju kod do samostatnych knižnic. Takže napriklad esp_partition bol pôvodne sučasťou ArduinoESP32 no teraz je to samostatna libka. A všetky komponenty ktore použivali ArduinoESP32 potrebuju pridať aj libku esp_partition v CMakeLists.txt do requires. Priklad upravy CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)
idf_component_register(SRCS "Adafruit_GFX.cpp" "Adafruit_GrayOLED.cpp" "Adafruit_SPITFT.cpp" "glcdfont.c"
INCLUDE_DIRS "."
REQUIRES arduino esp_partition Adafruit_BusIO)
project(Adafruit-GFX-Library)
A toto musim opakovať pre všetky komponenty čo vyžaduju kod z esp_partition. Takže som ho manualne pridal do requires pre komponenty ako: Adafruit_BusIO, Adafruit-GFX-Library a Adafruit_SSD1306 lenže čo keď updatnem gitom submoduly pre všetky komponenty? To potom budem musieť prikaždu upravovať manualne by bolo neunosne? Existuje nejaký tool na automatizovanú editáciu CMakeLists.txt? Alebo čo použiť v takomto prípade? Premyšlam či si tu upravu CMakeList nejako nenaskriptovať v nejakom vyššom jazyku, alebo čo?