Articles

Co je v cmake „projekt“?

projekt logicky seskupuje řadu cílů (tj. knihovny, spustitelné soubory a vlastní kroky sestavení) do samostatné kolekce, kterou lze postavit samostatně.

V praxi to znamená, že pokud máte project příkaz v CMakeLists.txt, měli byste být schopni spustit CMake z tohoto souboru a generátor by se měl vyrábět něco, co je buildable. Ve většině codebases, budete mít pouze jeden Projekt na sestavení.

Všimněte si však, že můžete vnořit více projektů. Projekt nejvyšší úrovně může obsahovat podadresář, který je zase dalším samostatným projektem. V tomto případě příkaz project zavádí další rozsah pro určité hodnoty. Například proměnná PROJECT_BINARY_DIR bude vždy ukazovat na kořenový binární adresář aktuálního projektu. Porovnejte to s CMAKE_BINARY_DIR, který vždy ukazuje na binární adresář projektu nejvyšší úrovně. Všimněte si také, že některé generátory mohou generovat další soubory pro projekty. Například generátory Visual Studia vytvoří .sln soubor řešení pro každý podprojekt.

použijte podprojekty, pokud je vaše kódová základna velmi složitá a potřebujete, aby uživatelé mohli vytvářet určité komponenty izolovaně. To vám dává velmi silný mechanismus pro strukturování systému sestavení. Vzhledem ke zvýšené režii kódování a údržby potřebné k tomu, aby bylo několik dílčích projektů skutečně soběstačných, doporučil bych jít touto cestou pouze tehdy, pokud pro ni máte skutečný případ použití. Rozdělení codebase do různých cílů by měla být vždy výhodný mechanismus pro strukturování stavět, zatímco sub-projektů by měla být vyhrazena pro ty vzácné případy, kdy opravdu potřebujete, aby se o podmnožinu cílů soběstačný.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.