Make/Cmake a orientace v komplexních multi-repozitáři [embedded C, IDE]

Longin

  • ***
  • 168
    • Zobrazit profil
    • E-mail
Na úvod říkám, že jsem odkojený na využití IDE respektive jeho schopnosti naindexovat projekt. Prostě se můžu ponořit do jákekoliv funkce/proměnné a najít lokaci definice použitá v aktuálním buildu, i když je třeba v rámci zdrojáků zakopaná s více definicemi stejného názvu na různých místech. Call hiearchy, zašedlé bloky neaktivního kódu atd.

Nyní mě čeká práce s komplexním SDK (repozitář s tuny submoduly), kde jsou tuny knihoven, driverů a hlavně examplů - cmake/make projektů pro různé varianty hardwaru od různých vendorů, mezi kterými potřebuju často přeskakovat. Můžu projekty přeložit přes command lajnu a debugovat přes elf, ale popravdě nevím jak efektivně pracovat s projektem, když se potřebuju ponořovat do zdrojáků v rámci kódu relevantní pro daný projekt/build.

Seniornější kolegové prohlížejí a editují kód v tomto SDK ve VScode, nicméně to není IDE spíše pokročilý editor a jeho integrace s IntelliSense je v takovém případě na dvě věci. Dokáže to sice snímat a parsovat textový výstup z buildu make/cmake, ale v takovým komplexním případě to často selže, když chci vyhledat nějakou definici funkce atd. Vscode navíc přes File Explorer vezme všechny soubory, které se mu předhodí jako parent directory pro workspace, takže pak když něco hledám konkrétního ve zdrojácích pro ten projekt, tak to stejně prohlíží celý repozitář, . Ano, jak VScode tak IntelliSense se dá nějak nastavit, dát tam ignore na různé cesty a soubory atd, ale ta konfigurace zabere čas a nedokážu to dostat od odpovídajícího výsledku.

Ptám se, jestli někdo řešil podobný problém a mohl mě případně nasměrovat jakou cestou se vydat. :D Momentálně vidím tři možnosti.
1. Nějak ohnout VSCode a Intellisense do použitelného řešení a ten proces konverze z make do VSCode workspace nějak zautomatizovat
2. Vzít nějaké C IDE (CDT Eclipse, Codeblocks) a importovat make/cmake, aby to vytvořilo workspace, kde v jeho souborovém manažeru budou jenom zdrojáky relevantní pro build a ty se korektně naindexují.
3. Smířit se s tím, že to jinak nejde a prostě se bez IDE fičur obejít jako to dělají kolegové
4. ???





a6b

  • ***
  • 208
    • Zobrazit profil
    • E-mail
u takoveho projektu se nemuzes naucit vsecko predem.
nejlepsi je si debugovat a postupne ziskavat zkusenosti kde co je.
ja dokazu delat ciste na prikazove radce, buildit s make, cmake primo na command lajne a editovat
jen ve vim a debugovat taky na radce v gdb.