CMake a automatizované úpravy CMakeLists v submoduloch

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:

Kód: [Vybrat]
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?
« Poslední změna: 13. 08. 2023, 16:19:03 od Petr Krčmář »